尝试获取特定域的内容时,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;
?>
有人可以帮我吗?
感谢。
答案 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);