环境php5.3.29使用copy函数下载远程图片,结果怎么都不成功,
一开始print_r打印变量出来结果是
https://nimg.ws.126.net/?url=http%3A%2F%2Fpic-bucket.ws.126.net%2Fphoto%2F0008%2F2020-10-10%2FFOJH969S2O3F0008NOS.jpg&thumbnail=660×2147483647&quality=80&type=jpg
这样地址栏也能正常访问,复制上面打印出来的地址copy也能实在,可实际上它不是上面的url,界面打印出来已经经过浏览器转换了,所以是正常的,实际上url如下
https://nimg.ws.126.net/?url=http%3A%2F%2Fpic-bucket.ws.126.net%2Fphoto%2F0008%2F2020-10-10%2FFOJH969S2O3F0008NOS.jpg&thumbnail=660×2147483647&quality=80&type=jpg
一定要通过查看页面源码才能看到,不能通过界面直接复制,通过页面看也会导致你直接用var_dump打印出来后长度是不一样,内容却一样的错误效果。
上面这个地址通过copy就没办法正常下载了,最后测试是因为包含了&实体hmlt就无法正常下载了,需要转义,修改如下。
echo copy(html_entity_decode(‘https://nimg.ws.126.net/?url=http%3A%2F%2Fpic-bucket.ws.126.net%2Fphoto%2F0008%2F2020-10-10%2FFOJH969S2O3F0008NOS.jpg&thumbnail=660×2147483647&quality=80&type=jpg’),’/data/temp/netpc.com.cn.jpg’);