覚書的メモ:PHPでHTTP通信

Twitter APIの各メソッドを利用するのに、HTTPが使えれば良い

PHPで、HTTP通信は、
どの手法が一番一般的なのかわからないのですが・・・(ケースバイケースとは思うものの)

例えば

PHPの関数利用】

ファイルの内容を全て文字列に読み込むという関数です。
  下はPHPのマニュアルに載っている例ですが、指定したホームページの内容を取得して表示することができます。

$homepage = file_get_contents('http://www.example.com/');
echo $homepage;

  • 2. fopen関数を使う

ファイルをオープンする関数ですがURLのオープンにも同様に利用されます。

$handle=fopen('http://www.example.com/',"r") or exit("Can't open\n");
$contents = stream_get_contents($handle);
echo $contents;
fclose($handle);

  インターネット接続オープンする関数
  ファイルポインタが返されますがこれは、 fgets(), fgetss(), fputs(), fclose(), feof() 等の他のファイル関数で使用可能
   ※Services_Twitterはfsockopenを利用して通信しているようですね。

下はPHPマニュアルにあった例です。

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}

【拡張モジュールの利用】
 ※拡張モジュールのインストールとモジュール利用のための設定(php.iniの編集等)が事前に行われている必要があります

  • 4. PEARライブラリの利用

  PEARのHTTP_Requestを利用すれば良さそう

 下はマニュアルにあった例ですが

require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}

Twitter APIの各メソッドの利用方法例が cURLで示されていたりするので何となく親しみやすい・・・ような気もするけれどもどうだろう? PHPで使えるcURL関数の記述方法とは明らかに違いますが

自分が利用させていただいている twitteroauth( http://github.com/abraham/twitteroauth )の中ではこのcURL関数が利用されていました。


他にもざくざくあるようですが収集が付かないのでこんなところで