前の記事 ≪:Webサーバ上のエクスプローラー「PHPEXPLORATOR」
次の記事 ≫:ブラウザ上からUNIXマシンのシステムログを閲覧できる「php-syslog-ng」

PHPでのHTTPアクセスを超簡単に行える「PEAR::HTTP_Request」

2007年03月28日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

PHPでのHTTPアクセスを超簡単に行える「PEAR::HTTP_Request」。
HTTP_Request は、PHPユーザの方ならご存知の方も多いと思いますが、WEB上にコピペですぐ使えるサンプルが無かったので作ってみました。

単純にHTTPリクエストを行うなら、PHPなら、file 関数や file_get_contents で1行でできてしまいます。
(php.ini にて allow_url_fopen=Onにした場合のみ)

ただ、タイムアウトの秒数を設定したり、リダイレクトされた場合の処理や、HTTPリクエストする際のヘッダーなどの指定はカスタマイズ出来ません。
HTTP_Request ならそれが次のように簡単に行えます。

<?php

// リクエストを行うURLの指定
$url "http://〜";

$option = array(
    
"timeout" => "10"// タイムアウトの秒数指定
    
"allowRedirects" => true// リダイレクトの許可設定(true/false)
    
"maxRedirects" => 3// リダイレクトの最大回数
);

// HTTP_Requestの初期化
$http = new HTTP_Request($url$option);

// HTTPのヘッダー設定
$http->addHeader("User-Agent""My PEAR PROGRAM");
$http->addHeader("Referer""http://www.yahoo.co.jp/");

// HTTPリクエスト実行
$response $http->sendRequest();
if (!
PEAR::isError($response)) { 
    $ret1 =
$http->getResponseCode();// ResponseCode(200等)を取得 
    $ret2 =
$http->getResponseHeader();// ResponseHeader(レスポンスヘッダ)を取得 
    $ret3 =
$http->getResponseBody();// ResponseBody(レスポンステキスト)を取得 
    $ret4 =
$http->getResponseCookies();// クッキーを取得
}

?>

PHPでリモートファイルを取得する場面は多く(RSSを取ったり)、HTTPのパラメータも設定した上できちんとアクセスさせたい場合もありますね。
このサンプルを覚えておけばコピペしてかなり活用できると思います。

HTTP_Client というクラスも存在しますが、こちらは拙著の「PHPによるWebアプリケーションスーパーサンプル 活用編」にて紹介しています。

関連ページ

関連の記事検索:PHP, pear, http, PEAR
スポンサード リンク

By.KJ : 2007年03月28日 07:07 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)