У меня настроен сценарий, который по причинам необходимости получает как заголовок HTTP-ответа, так и содержимое запроса GET с использованием fsock.
function checkUrl($host,$url,$port) {
$fp = fsockopen($host, $port, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET $url HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$response = fgets($fp, 1024);
print(substr($response,9,3));
}
fclose($fp);
}
}
Я звоню и получаю все нужные данные, если просто повторяю все это. Но на самом деле все, что мне нужно вернуть из функции, - это HTTP-код STATUS.
т.е. 404 или 200 или 301 и т. Д.
Но приведенный выше код дает код ошибки точно, но затем с грузом тарабарщины в конце, который я не понимаю, когда я ограничен 3 символами!
например.
404, 2BM_n: Encype HThe tp-me=srcsrclanstaPre> lanmg=[0][1][2][3][4][5][6][7][8][9][10[11[12 swt.i> ypeeleamiize#99eco#66ade#33izeine#CCize { #66izeeig tmardespath=th=th=th=th=th=th=spardeolordeignign bocol widwidwid col bler> td Sorabl> e> rdeolordespath=th=th= bo spardeoloe="lanSen>
Что заставляет меня верить, что мой ответ на самом деле более сложный, чем просто строка, верно? Что-то особенное в шапке или я неправильно понимаю, как работает fgets? Любая помощь высоко ценится