PEAR::HTTP_Client でユーザエージェントを指定する

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])

*1:リンク先の方法ではmixiのリニューアルがあった為、マイミクシィ最新日記は取得できません