При работе с сокетами выдается ошибка 400 или приходит содержание страницы, но без заголовков. в чем проблема? код: $addr="aport.ru" ; $f=fsockopen($addr,80) or die("No connect"); if($f) { fputs($f,"GET/HTTP /1.0 \r\n"); fputs($f,"host:http://".$addr."\r\n"); fputs($f,"Referer:$addr \r\n"); fputs($f,"Accept:text/html \r\n"); fputs($f,"Accept-charset:windows-1251 \r\n"); fputs($f,"Accept-language:ru \r\n"); while(!feof($f)) { $text=fgets($f,4096); echo '<pre>'.htmlspecialchars($text).'<pre>'; }
красным выделены места с ошибками правильно: PHP: <?php $addr="aport.ru" ; $f=fsockopen($addr,80) or die("No connect"); if($f) { fputs($f,"GET / HTTP/1.0 \r\n"); fputs($f,"host:".$addr."\r\n"); fputs($f,"Referer:$addr \r\n"); fputs($f,"Accept:text/html \r\n"); fputs($f,"Accept-charset:windows-1251 \r\n"); fputs($f,"Accept-language:ru \r\n\r\n"); while(!feof($f)) { $text=fgets($f,4096); echo '<pre>'.htmlspecialchars($text).'<pre>'; } } http://php.net/manual/en/function.fsockopen.php
почему при отправке get запроса в поиск не возвращаются результаты поиска, а просто обычная страницы? код тот же, только одно поле другое fputs($f,"GET /?r=search%2FbestSite&q=hai/HTTP /1.0 \r\n");
Может быть потому, что вы опять синтаксические ошибки допускаете? Может нужно быть боле внимательным, или прочитать все же мануал, как бы сильно вам этого не хотелось, но это сэкономить уйму времени, как вашего, так и других людей!
бесполезно, даже ваш запрос ничего не выдает. почему при обращении к некоторым сайтам приходят заголовки ответа вместе с содержимым страницы, а при обращении к другим только содержимое страницы? почему при обращении к некоторым сайтам выдает ошибку 404, хотя сайт правильный? Возможно такое, что сервер просто блокирует сокеты? работаю через денвер, если что. может быть поэтому?
yesman Это технически невозможно. Значит URL неправильный, либо вы не передаете всех необходимых заголовков Нет, невозможно Без конкретных примеров страниц и вашего кода - невозможно сказать. Но судя по всему - ошибки происходят из-за того, что ваш код неправилен, только и всего