fsockopen を使います。
後はファイルポインタを使用してファイルを扱うようにリモートからデータを読み込めます。
<?php
// タイムアウトを30秒に設定に www.php.net の 80 番ポートに接続
// エラーがあれば $errno,$errstr に入る。
$fp = fsockopen ("www.php.net", 80, $errno, $errstr, 30);
if (!$fp) {
echo "接続できません<br>\n";
} else {
// 読み書きのタイムアウト設定
socket_set_timeout($fp, 2);
fputs ($fp, "GET / HTTP/1.0\r\nHost: www.php.net\r\n\r\n");
while (!feof($fp)) {
echo fgets ($fp,128);
}
// ソケットがタイムアウトしたかどうか調べる
$stat = socket_get_status($fp);
if ($stat["timed_out"]) { echo "timeout"; }
// ソケットを閉じる
fclose ($fp);
}
?>
上記例では、www.php.net の HTTP に接続してドキュメントを取ってきています。
phpでは、もっと簡単にデータをとってくることも可能ですが、リファラやユーザエージェントを送りたい場合などにこの関数を使って行うことがあります。
リファラ,ユーザエージェントを送るには、
fputs ($fp, "GET / HTTP/1.0\r\nHost: www.php.net\r\nReferer: http://www.yahoo.com\r\nUser-Agent:php-agent\r\n\r\n");
のようにします。
スポンサードリンク
PHPサンプル集