爲什麼我有時會出現這個錯誤?使用UserAgent時出現Curl 400錯誤
**Bad Request**
Your browser sent a request that this server could not understand.
Apache Server at control.digitalcoding.com Port 80
當
$UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11";
一切工作正常,但不能與
歌劇院/ 7.52(的Windows NT 5.1; U)[英文] 的Mozilla/5.0(窗口; U; Windows NT的5.1; rv:1.7.3)Gecko/20041001 Firefox/0.10.1 Mozilla/5.0(Windows NT 6.1; rv:10.0.1)Gecko/20100101 Firefox/10.0.1
例如。問題是什麼?
HtmlReciever.php
<?php
if(empty($_GET["Link"]))
{
echo "empty";
die;
}
$LinkToFetch = urldecode($_GET["Link"]);
$UserAgent = urldecode($_GET["UserAgent"]);
function iscurlinstalled()
{
if (in_array ('curl', get_loaded_extensions()))
{
return true;
}
else
{
return false;
}
}
// If curl is instaled
if(iscurlinstalled()==true)
{
$ch = curl_init($LinkToFetch);
curl_setopt($ch, CURLOPT_USERAGENT,$UserAgent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$HtmlCode = curl_exec($ch);
curl_close($ch);
}
else
{
$HtmlCode = file_get_contents($LinkToFetch);
}
echo $HtmlCode;
?>
我必須說,我從另一個.PHP運行RecieverHtml.php與得到這樣
那麼,您是否說我需要在Chrome中才能使用該腳本?這是不好的..以及如何通過修改我的腳本/服務器「欺騙」UserAgent?我有完全訪問權限。 – Master345 2012-03-06 23:14:25
@RowMinds:你不需要在Chrome中「成爲」。當你通過上面提到的用戶代理(工作的那個)時,你實際上假裝是Chrome,甚至認爲你是一個PHP腳本。您可以通過僅使用Chrome發送的代理(如您已經做的),Firefox或任何您需要的瀏覽器來欺騙用戶代理。查看我的更新答案以獲取更多詳情。 – CodeZombie 2012-03-06 23:25:10