这是一个指向图像的 URL:
如果我在 CLI 中使用 cURL 作为这个命令,我会得到图像:
/usr/bin/curl -o 1234.jpg 'the_url_to_image'
我需要在 PHP 中使用 cURL 和参数。我尝试了几个参数来获取图像,我总是得到一个 403 错误
已禁止访问指定资源。阿帕奇雄猫
我的参数(只有 cURL 参数,将图像写入文件的代码不在此处):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $img_url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_filename);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookie_filename);
$page_content = curl_exec($ch);
curl_close($ch);
编辑
如果我将图像 URL 提供给此页面:
onlinecurl.com
我得到了图像二进制文件,没有错误消息。
所以图像可以用cURL保存,我只需要 curl_setopt正确设置。
编辑
通过在 CLI 中运行 a 命令,图像被保存到本地路径
/usr/bin/curl -o 1234.jpg 'the_url_to_image'
当运行相同的命令时
shell_exec("/usr/bin/curl -o 1234.jpg 'the_url_to_image'")
错误消息保存在 1234.jpg 文件中。
同一命令的命令行和代码执行有什么区别?
繁星点点滴滴
慕慕森
倚天杖
湖上湖