如何解决Amazon产品图像URL的cURL仅在localhost中有效
我已经使用了一个cURL脚本,以便可以从Amazon获取产品的图像,但是它只能在localhost上工作,在我的网站上却不起作用。
请有人可以帮助我使其正常工作吗?
function getHTML($url,$timeout)
{
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_FAILONERROR,1);
return @curl_exec($ch);
}
$html=getHTML("https://www.amazon.com/dp/B003B7Q5YY",10);
preg_match_all('/,"large":"(.*?)",/',$html,$output);
foreach ($output[1] as $key=>$value) {
echo $value;
}
解决方法
首先,您需要确保已安装并启用了curl
if (function_exists('curl_version')) {
// CURL is installed and enabled.
}
可以通过以下方式安装curl扩展程序:
sudo apt-get install php7.3-curl
您将需要更改软件包名称php7.3-curl
以匹配您的php版本。
根据您运行php的方式,可能需要重新启动Web服务器或php fpm服务:
sudo service apache2 restart
sudo service php7.3-fpm restart
当我在本地尝试此操作时,我注意到响应已压缩,因此我需要使用以下命令设置Accept-Encoding
头:
curl_setopt($ch,CURLOPT_ENCODING,'gzip');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。