Wednesday, 3 May 2017

403 Forbidden error when getting a page with PHP cURL

This is my code:




$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;


It works fine when I set the $url = 'http://www.google.com', but if I change the $url,like www.aoguejewellery.com and some other urls, I always got a 403 error.

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...