PHPのPEAR::HTTP_Clientでセッションを保存する方法

By |2月 20, 2009|未分類, |


PHPにはHTTP_Clientというモジュールがあります。これはWEBブラウザ(WEBクライアント)で行う処理をPHPで実現するためのPEARモジュールです。
HTTP_Requestとの違いは、Cookieのサポートなど、永続化が必要な完了でも簡単に読み込みが行えるため、ログインが必要なページのHTMLを取得する場合などには必須のライブラリといえます。
ただし、使用例などを載せたマニュアルが少ないため、実装には少し苦労します。以下はセッションを保存するサンプルです。セッションを保存すると、2回目のアクセス以降にログイン処理を行う必要がなくなります(クッキーの有効時間に注意)。

使用方法

[sourcecode language=”php”]
< ?php
//=========================================
print "
<hr />■クッキーシリアル化チェック";
//=========================================
print "
<hr />■初回チェック
";
$client =&amp; new HTTP_Client();
//クッキーマネージャ呼び出し
$classCookieManager = $client->getCookieManager();
//シリアライズ時にセッションを消す設定を行います
$classCookieManager->serializeSessionCookies(true);
//———————————
$client->get("http://localhost/test.php");
$response = $client->currentResponse();
print_r($response);
//————————————-
//シリアル化
$seriarized = serialize($classCookieManager);

//CookieManager内のクッキーが消えていることを確認します。
var_dump($classCookieManager);

//シリアル化されたクラス(クッキーを含む)
var_dump($seriarized);

//=========================================
print "
<hr />■2回目チェック
";
//シリアルを書き戻し
$client =&amp; new HTTP_Client(null,null,unserialize($seriarized));
$client->get("http://localhost/test.php");
$response = $client->currentResponse();
print_r($response);

?>
[/sourcecode]