问题描述
我已经使用了一个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');