ソケットを使って外部HTTPの内容をヘッダとBODYに分けて取り出す関数です。
<?php
list($head,$body) = httpRequest("http://www.yahoo.co.jp");
function httpRequest($url)
{
$purl = parse_url($url);
if (isset($purl["query"])) {
$purl["query"] = "?".$purl["query"];
} else {
$purl["query"] = "";
}
if (!isset($purl["port"])) {
$purl["port"] = 80;
}
$request = "GET ".$purl["path"].$purl["query"]." HTTP/1.0\r\n";
$request .= "Host: ".$purl["host"]."\r\n";
$request .= "\r\n";
// タイムアウトを8秒に設定
$fp = fsockopen($purl["host"], $purl["port"], $errno, $errstr, 8);
socket_set_timeout($fp, 8);
if (!$fp) {
return "-1";
}
fputs($fp, $request);
$response = "";
while (!feof($fp)) {
$response .= fgets($fp, 4096);
}
fclose($fp);
$DATA = split("\r\n\r\n", $response, 2);
return $DATA;
}
?>
スポンサードリンク