Задаю вопрос еще раз, так как на него не дождался ответа в вопросах, и врятли дождусь. Столкнулся с проблемой: Отправляю сокетом на скачку главной страницы яндекса, и мне выдает ответ что там стоит 301 редирект. Вообщем как по нему перейти или избежать его вообще? P.S заметил, если не отправлять Host:, то все работает(НО имхо это не выход). Заранее спасибо
PHP: $site = "http://yandex.ru/"; preg_match("/[.]{1}[a-zA-Z]{2,5}(\/[a-zA-Z0-9\-\_\.\,\:]+)/",$site,$path); preg_match("/[:]{1}\/\/([a-zA-Z0-9\-\.]+)\//",$site,$host); define("PATH",$path[1]); define("HOST",$host[1]); $fp = @fsockopen(HOST,80,$errno,$errstr,10) or exit(); $out = "GET /".PATH." HTTP/1.0\r\n"; $out .= "Host: ".HOST."\r\n"; $out .= "Referer: ".$site."\r\n"; $out .= "User-Agent: Opera/9.50 (Windows NT 6.0; U; ru)\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp,$out); while(!feof($fp)){ $page .= fread($fp,512); } fclose($fp); Вот кусочик^
Вот все ОК: PHP: <? $site = "www.yandex.ru"; preg_match("/[.]{1}[a-zA-Z]{2,5}(\/[a-zA-Z0-9\-\_\.\,\:]+)/",$site,$path); preg_match("/[:]{1}\/\/([a-zA-Z0-9\-\.]+)\//",$site,$host); define("PATH",""); define("HOST",$site); $fp = @fsockopen(HOST,80,$errno,$errstr,10) or exit(); $out = "GET /".PATH." HTTP/1.0\r\n"; $out .= "Host: ".HOST."\r\n"; $out .= "Referer: ".$site."\r\n"; $out .= "User-Agent: Opera/9.50 (Windows NT 6.0; U; ru)\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp,$out); while(!feof($fp)){ $page .= fread($fp,512); } echo $page; fclose($fp); ?> Там редирект 500% стоит просто с yandex.ru на www.yandex.ru чтоб все происходило на www.yandex.ru этож типа разные домены))