UserAgentのためにcurlやPEAR::HTTP_Requestを用意する必要はなさそうだ。
(ノ・・)ン。。。。。。(((●コロコロッ
$context = stream_context_create(array('http' => array(
'method' => 'GET',
'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
)));
$url = "http://hain.jp";
$data = file_get_contents($url, false, $context);
stream_context_createを使うのがポイント
[More:]
PHPは5以上。
file_get_contents、もっと言うとfopenにURLを指定してサイトにアクセスすると、
サイトのデータが文字列で取れるのはご存じだと思う。
ただ、その際送信されるユーザーエージェントは
PHP/x.x.x
これでも別段問題はないのだが、
ユーザーエージェントによって表示方法を動的に変えているサイトも珍しくはない。
特定のUserAgentの時のページを取得したい場合はcURL関数やPEAR::HTTPRequestなどを持ち出さなければならない。
それは少し面倒だ。
しかし、stream_content_createを用いることで、
パラメータを指定するだけでUAの情報を変更することが出来る。
これはメリットが大きいはず。
ユーザーエージェントのみならず、
HTTPヘッダはすべて変更が可能なので、
file_get_contentsでPOSTを送信することも出来る。
php.iniのuser_agentを変更することでも可能らしい。
これはPHP4でも可。
ini_set('user_agent', 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
stream_context_createのオプションとして利用できるhttpパラメータは以下に記載されている。
http://www.php.net/manual/en/wrappers.http.php#id3886679
これによると、timeout時間やprotocolのバージョンも制御できる。