<?php
require_once "HTTP/Request.php";
$AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$URL = "https://login.yahoo.co.jp:443/config/login";
$rq =new HTTP_Request($URL);
$rq->setHttpVer("1.1");
$rq->addHeader('User-Agent', $AGENT);
$rq->sendRequest();
echo $rq->getResponseBody();
?>
前回お話したPEARのHTTP_Requestクラスライブラリをご紹介したいと思います。
今回はHTTPSのWebページを取得する方法について考えて見ます。
PHPでHTTPSページを取得するためには、PHPにopensslライブラリが組み込まれている必要があります。
PHPコマンドの場合、
% php -m
で組み込まれているライブラリ群が確認できます。
ブラウザ経由ですと
<?
phpinfo();
?>
で確認できます。
ここでのライブラリとは、シェアードオブジェクト形式(バイナリライブラリ)でのPHPのダイナミックリンクライブラリになります。
------------------
実行例
------------------
% php -m
[PHP Modules]
ctype
db
gd
mbstring
mysql
openssl <---- これです。
overload
pcntl
pcre
pgsql
posix
session
shmop
standard
tokenizer
xml
zlib
------------------
HTTP_Requestライブラリのインストールについては下記を参照下さい。
■PEARモジュールのインストール方法
http://kimura.conv.jp/de/369/1600/
以下、HTTP_Requestクラスを使ったHTTPSページの取得サンプルです。
Yahooのhttpsログインページを取得します。
----
gethttps.php
----
#!/usr/local/bin/php -q
<?
require_once "HTTP/Request.php";
{
$AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$URL = "https://login.yahoo.co.jp:443/config/login";
$rq =new HTTP_Request($URL, $proxy_params);
$rq->setHttpVer("1.1");
$rq->addHeader('User-Agent', $AGENT);
$rq->sendRequest();
print $rq->getResponseBody();
}
?>
----
HTTP_Requestライブラリには、POSTデータ送信、Basic認証メソッドやなどが用意されており大変便利です。
詳細については下記を参照下さい。
■PEAR:HTTP
http://pear.php.net/manual/en/package.http.php