なぜこのエラーが発生するのですか?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)[EN] のMozilla/5.0(Windowsの; U; Windows NTのMozilla/5.0(Windows NT 6.1; rv:10.0.1)Gecko/20100101 Firefox/10.0.1
たとえば、Gecko/20041001 Firefox/0.10.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;
?>
私は私がこの
だから、あなたは私が働くためにそのスクリプトを実行しているときにChromeにいなければならないと言っていますか?これは良いことではありません。私はスクリプト/サーバーを変更してUserAgentを "偽装"することはできますか?私は完全なアクセス権を持っています。 – Master345
@RowMinds:あなたはChromeの中にいる必要はありません。あなたが実際にあなたがPHPスクリプトであると思っていても、あなたが実際にChromeであるふりをする上記の(あなたが動作する)上記のユーザエージェントを渡すとき。ユーザーエージェントは、Chromeから送信されたもの(既に行ったように)、Firefox、または必要なブラウザを使用するだけで偽装することができます。詳細については、私の更新答えを見てください。 – CodeZombie