cURL请求挂起浏览器并继续等待Cpanel

时间:2017-10-11 07:02:48

标签: php curl cpanel

嗨我正面临关于php cURL的问题我正试图点击一个网址并获得一个xml,然后将其转换为一个数组,以便在我的网站上的某个地方显示数据on localhost它的工作原理很好,但当我把它放在cpanel上时,curl请求得不到响应并继续等待响应并部分挂起浏览器,直到我重新启动browser.i curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);,但仍然存在问题。 这是我的cURL代码

    if($is_url) {
        if (!($fp = @ fopen($url, 'rb'))) {
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_USERAGENT, 
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/3.0.0.2');
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
            curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
            curl_setopt($ch, CURLOPT_TIMEOUT_MS, 600);
            $contents = curl_exec($ch);
            curl_close($ch);

            if(!$contents)
                return false;
        }
        while (!feof($fp)) {
            $contents .= fread($fp, 8192);
        }
        fclose($fp);
    } else {
        $contents = $url;
    }

任何关于此的帮助都会非常感激。谢谢

2 个答案:

答案 0 :(得分:2)

由于您尝试在cPanel服务器上运行它,因此可能会禁用某些php函数。

首先要做的是检查服务器上是否启用了php函数allow_url_fopen()

发出php -i | grep php.ini以检查默认加载哪个php配置文件(它是服务器上的默认值)。然后检查该php.ini文件,看看 allow_url_fopen 开启还是关闭

根据您的cPanel服务器配置,特定的cPanel帐户可能使用与服务器上的默认版本完全不同的php版本。

还尝试在脚本中添加一些调试,以查看确切的错误消息。您还可以检查Apache错误日志,看看是否在那里找到任何有用的信息。

答案 1 :(得分:0)

非常感谢您解决困扰我DAYS的问题。主要线索是查看Apache2日志文件。真正的Linux用户将日志称为呼叫的第一端口,但那些不使用Linux作为其主要力量的用户通常会忘记它们。 检查apache2错误日志后,我发现PHP是造成我问题的原因。更正/var/log/apache2/php.ini(或任何活动php.ini文件所在的位置),以便

extension=php_curl.dll
通过删除;激活

(评论指示器)。问题解决了!

相关问题