| Цитата(egrik @ 4.1.2009, 23:07) | | Цитата(Sice @ 4.1.2009, 12:58) | | SneG0K, большое спасибо, но у меня он почему-то не заработал.. |
Покажи, как вызывал функцию с примером на конкретный сайт. |
| Код |
$url = "http://onpulse.ru/";
function parseUrl($url, $timeout = 5) { $url_parsed = parse_url($url); $host = $url_parsed["host"]; if ($url == '' || $host == '') { return false; } $hostName = gethostbyname($host); $ip = ip2long($hostName); if ($ip === -1 || $ip === false) { return false; } $port = ($url_parsed["port"] == 0 ? 80 : $url_parsed["port"]); $path = (empty($url_parsed["path"]) ? '/' : $url_parsed["path"]); $path.= (!empty($url_parsed["query"]) ? '?'.$url_parsed["query"] : ''); $out = "GET $path HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n"; $fp = fsockopen($host, $port, $errno, $errstr, intval($timeout)); if (!$fp) { return false; } stream_set_timeout($fp, intval($timeout)); fwrite($fp, $out); $headers = ''; $content = ''; $buf = ''; $isBody = false; while (!feof($fp)) { $buf = fgets($fp, 1024); if ($isBody) { $content .= $buf; } else { $headers .= $buf; } if ($buf == "\r\n" ) { $isBody = true; } } preg_match('#HTTP/1.[0-9]{1}\s+([0-9]{3}).*#is', $headers, $match); fclose($fp); if($match[1] != 200) { return false; } return array('headers'=>$headers,'body'=>$content); }
function parseUrl()
echo $content;
|
|