尝试获取特定域的内容时,PHP Curl不起作用

时间:2011-09-25 22:20:05

标签: php curl

尝试获取特定域的内容时,PHP Curl不起作用。

特定域名是“www.net4winners.com.br”,它适用于每个域但不适用于此域,它总是返回:curl输出中的“找不到对象”。

此测试的PHP代码:

<?php
function run_curl($url,$p=null)
    {
        $ch = curl_init();
        $options = array(
        CURLOPT_URL => $url,
        CURLOPT_HEADER => 0,
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)",
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FOLLOWLOCATION => 1
        );
        if($p != null)
        {
            $options[CURLOPT_CUSTOMREQUEST] = "POST";
            $options[CURLOPT_POST] = 1;
            $options[CURLOPT_POSTFIELDS] = $p;
        }

        curl_setopt_array($ch,$options);

        $resultado = curl_exec($ch);

        if($resultado) { return $resultado; } else { return curl_error($ch); }

        curl_close($ch);
    }
    $out = run_curl('http://www.net4winners.com.br/');
    echo $out;
?>

有人可以帮我吗?

感谢。

1 个答案:

答案 0 :(得分:1)

它无法正常工作,因为服务器正在检查是否存在某些未由cURL发送的标头。根据我的测试,您案例中缺少的是 Accept-Language

尝试将以下内容添加到$options数组中:

CURLOPT_HTTPHEADER => array('Accept-Language: en-us')

示例:

<?php

$ch = curl_init('http://www.net4winners.com.br/');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept-Language: en-us'
));
curl_exec($ch);