403使用PHP cURL获取页面时出现Forbidden错误

时间:2010-09-14 04:00:39

标签: php curl

这是我的代码:

$url = 'http://www.douban.com/';

$url = str_replace(" ", "%20", $url);
$TheURL_header = substr($url, 0, 7);
if ($TheURL_header == "http://") {
    $pos = strpos($url, "/", 7);
    if ($pos) {
        $host = substr($url, 7, $pos - 7);
    } else {
        $host = substr($url, 7);
    }
    $referer = "http://" . $host . "/";
} else if ($TheURL_header == "https:/") {
    $pos = strpos($url, "/", 8);
    if ($pos) {
        $host = substr($url, 8, $pos - 8);
    } else {
        $host = substr($url, 8);
    }
    $referer = "https://" . $host . "/";
} else {
    $pos = strpos($url, "/");
    if ($pos) {
        $host = substr($url, 0, $pos);
    } else {
        $host = substr($url, 0);
    }
    $url = "http://" . $url;
    $referer = "http://" . $host . "/";
}

$c = curl_init();
$curl_header = array(
    'Accept: */*',
    'Referer: ' . $referer,
    'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2',
    'Host: ' . $host,
    'Connection: Keep-Alive');
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, $curl_header);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($c, CURLOPT_TIMEOUT, 30);
curl_setopt($c, CURLOPT_HEADER, 0);

$res = curl_exec($c);

echo $res;

当我设置$ url ='http://www.google.com'时它工作正常,但是如果我更改$ url,比如www.aoguejewellery.com和其他一些网址,我总是得到403错误。

1 个答案:

答案 0 :(得分:0)

尝试删除curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET');,然后重试。