Eric, Yes, that was it! Fixing this made 'copy' work.
So, PHP maintainers: why didn't the error message say that the colon was
missing, or include a description of correct wrapper syntax? All it says
is "failed to open stream", not even "syntax error in stream protocol".
I would fix the error message myself if I could.
Thanks, Eric, for your sustained help in getting both parts of this
example working. You are a great human being and an inspiration.
When I have time, I will clean up the examples and post them wherever
people are having trouble using PHP to upload files using SFTP.
David