PEAR::HTTP_Client でユーザエージェントを指定する
HTTP_Clientは特定のページを取得するのに非常に便利なライブラリです。35. PEAR::HTTP_Clientでサイトの内容取得 | 日経 xTECH(クロステック)で紹介されているように、mixiの中のデータを取得するのにも利用できます*1。
ですが、何も設定しないと、HTTP_Clientで取得するユーザエージェントは「PEAR HTTP_Request class ( http://pear.php.net/ )」に固定になってしまっています。これを変更する方法です。
PEARのマニュアルを見ると、コンストラクタは以下の様になっています。
void constructor HTTP_Client::HTTP_Client ([array $defaultRequestParams = NULL [, array $defaultHeaders = NULL]])
どうやら引数として$defaultRequestParamsと$defaultHeadersが渡せるようです。
この$defaultHeadersを以下の様に定義しておけば、それがユーザエージェントとして使われます。
$defaultHeaders = array('User-Agent' => 'Opera/9.25 (Windows NT 5.1; U; ja)');
他にもAccept-LanguageなどHTTPで定義されているものが使えます。
HTTP_Client::setDefaultHeaderでも同じ様に設定する事ができるようです。
void HTTP_Client::setDefaultHeader (mixed $name [, string $value = NULL])