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');

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...