Curl を使用したブラウザのような GET リクエストのエミュレーション
Curl を使用して HTTP GET リクエストを行う場合、Web の動作をエミュレートする必要がある場合があります。ブラウザを使用してサーバーエラーを回避します。その方法は次のとおりです。
CURLOPT_USERAGENT を使用する
一部の Web サイトでは、ユーザー エージェント文字列をチェックして、リクエストがブラウザーからのものであるかどうかを判断します。 Curl を初期化し、目的のブラウザ文字列でユーザー エージェント オプションを設定します。
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; curl_setopt($ch, CURLOPT_USERAGENT, $agent);
Cookie の処理 (オプション)
Web サイトが Cookie に依存している場合は、CURLOPT_COOKIE を使用します。 Cookie を渡して保存するための CURLOPT_COOKIEFILE および/または CURLOPT_COOKIEJAR オプション:
curl_setopt($ch, CURLOPT_COOKIE, 'key1=value1; key2=value2'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
SSL 証明書の検証 (HTTPS のみ)
HTTPS 経由のリクエストには検証済みの SSL 証明書が必要です。検証を無視するには、CURLOPT_SSL_VERIFYPEER を false に設定します。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
コード例
これらのオプションを組み合わせたサンプル スクリプトを次に示します。
$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname"; $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_URL,$url); $result=curl_exec($ch); var_dump($result);
使用方法これらのオプションを使用すると、Curl を使用してブラウザのような GET リクエストを正確にエミュレートし、リクエストが実際の Web ブラウザから送信されたかのようにサーバーが応答するようにすることができます。
以上がCurl を使用してブラウザのような GET リクエストをエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。