php使用copy下载远程图片返回成功实际为0KB空文件
全文约 311 字预计阅读 2 分钟
环境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=660x2147483647&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=660x2147483647&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=660x2147483647&quality=80&type=jpg'),'/data/temp/netpc.com.cn.jpg');
php使用copy下载远程图片返回成功实际为0KB空文件
评论 0 条
暂无评论,来说点什么吧。