Очень простая функция, которая позволить дергать страницы с других серверов, не рискуя повесить свой, если сторонний сервер не отвечает. Для работы требуется cURL. PHP: <?php function file_get_contents_timeout($filename, $timeout=3) { if(strpos($filename,"://")===false) return file_get_contents($filename); if(!function_exists("curl_init")) return false; $session=curl_init($filename); curl_setopt($session,CURLOPT_MUTE,true); curl_setopt($session,CURLOPT_RETURNTRANSFER,true); curl_setopt($session,CURLOPT_CONNECTTIMEOUT,$timeout); curl_setopt($session,CURLOPT_TIMEOUT,$timeout); curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible)"); $result=curl_exec($session); curl_close($session); return $result; } Примеры использования: PHP: <?php $yandex=file_get_contents_timeout("http://yandex.ru"); // HTML-текст $error=file_get_contents_timeout("http://no.site"); // false Таймаут задается в секундах. По умолчанию - 3.
lexa Потому что функция была бы гораздо более объемной тогда Но ты можешь написать такую, будет хорошая альтернатива.
Dagdamor Ну не сильно объемной. Попробовал, накидал. PHP: <?php function file_get_content_timeout ($URL, $timeout = 3){ $timeout = (int) $timeout; if ($timeout < 1) $timeout = 1; $Error = "Can't connect to remote URL"; $content = ''; if ($handler = fsockopen ($URL, 80, $Error, $Error, $timeout)){ $H = "GET / HTTP/1.1\r\n"; $H.= "Host: $URL\r\n"; $H.= "Connection: Close\r\n\r\n"; fwrite($handler, $H); while (!feof ($handler)){ $content.= fread ($handler, 4096); } fclose ($handler); echo $content; } } file_get_content_timeout ('blog.warhour.ru', 10); ?>