<?php
$protocol = 'http://'; // 通信プロトコル設定
$host = 'www.example.com'; // 接続先ホスト設定
$port = 80; // ポート番号設定
$timeout = 30; // タイムアウト設定
// $errnoと$errstrにはエラー内容がセットされる
$fp = fsockopen ($protocol . $server, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo '接続に失敗しました。';
} else {
// 読み書きのタイムアウト設定
socket_set_timeout($fp, 2);
// fputsはfwriteのエイリアス
fputs ($fp, 'GET / HTTP/1.0\r\nHost: ' . $host . '\r\n\r\n');
while (!feof($fp)) {
echo fgets($fp, 4096);
}
// 通信がタイムアウトしたかチェックする
$status = socket_get_status($fp);
if ($status['timed_out']) {
echo 'タイムアウトしました。';
}
// ソケットを閉じる
fclose ($fp);
}
?>
■SSL通信の場合は以下に変更する。
$protocol = 'ssl://';
$port = 443;
※受け取った値をそのまま使おうとすると最後に空白が入っているので、rtrim()をつかって取り出だしてあげる。
【参考URL】
http://phpspot.net/php/pg%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88%E3%81%AE%E4%BD%BF%E3%81%84%E3%81%8B%E3%81%9F.html
http://php.net/manual/ja/function.fsockopen.php
http://macutie.weblog.vc/?p=259
http://jp2.php.net/rtrim