По чему не работает код (он пишет только "Result:" и пустота, см.
hosthack.tk/?server=hostinger.ru&num=1 и вообще загружается 12 секунд):
echo 'Result:<br><br>'."\n";
$request = "GET / HTTP/1.1\r\n";
$request .= "Host: ".$_GET[server]."\r\n";
$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n";
$page=@fsockopen($_GET[server], 80, $errno, $errstr);
$text=fgets($page);
$text=substr($text, 0, strripos($text, ' '));
$text=str_replace("\r\n", ' ', $text);
$text=str_replace("\n", ' ', $text);
$text=str_replace('<', ' <', $text);
$text=preg_replace(array("/<script(.*)<\/script>/", "/<title(.*)<\/title>/", "/<textarea(.*)<\/textarea>/", "/<style(.*)<\/style>/"), ' ', $text);
$text=strip_tags($text);
$text=trim(preg_replace("/ +/", ' ', $text));
if(strlen($text) > 999){
$text=substr($text, 0, 999);
$textipos=strripos($text, ' ');
$text=substr($text, 0, $textipos);
$text.=" ...";
}else
echo $text;
Проблемный код:
$request = "GET / HTTP/1.1\r\n";
$request .= "Host: ".$_GET[server]."\r\n";
$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n";
$text=fgets(@fsockopen($_GET[server], 80, $errno, $errstr));
То есть если вместо него написать
$text=file_get_contents('http://'.$_GET[server]);
, то всё заработает. Только к file_get_contents() некоторые сайты относятся отрицательно и не дают свою страницу. По этому решил взять fsockopen().
Если закомментировать строку
$text=fgets($page);
, то страница загружается с естественной быстрой скоростью, но результат не меняется.