Доброго времени суток. Опять я эти сокеты не понимаю, и прошу помощи. План: я посылаю пакет принимаю ответ -дальше проблемы- я опять посылаю пакет я принимаю ответ ... ... ... Первый раз запись/чтение норм,а потом не получаю ответа. Набрасайте скрипт..Плз) порт 80 и эт не джаббер и ответ всегда 1.
PHP: $header = "GET http://rambler.ru/ HTTP/1.0\r\n"; $header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $header .= "Accept-Language: uk\r\n"; $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n"; $header .= "Host: www.rambler.ru\r\n"; $header .= "Proxy-Connection: Keep-Alive\r\n\r\n"; $sckt = fsockopen("www.rambler.ru",80); fputs($sckt,$header); while(!feof($sckt)) { $serv_answer = fgets($sckt,2048); if($s = strstr($serv_answer,"ruid=")) // извлекаем переменную ruid из заголовка Set-Cookie ответа сервера { $ruid = substr($s,5,24); } } fclose($sckt); //авторизируемся $auth_data = "domain=rambler.ru&url=7&login=".$login."&passw=".$password; $auth_data_len = strlen($auth_data); $header = "POST http://mail.rambler.ru/script/auth.cgi HTTP/1.0\r\n"; $header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $header .= "Referer: http://www.rambler.ru/\r\n"; $header .= "Accept-Language: uk\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Proxy-Connection: Keep-Alive\r\n"; $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n"; $header .= "Host: mail.rambler.ru\r\n"; $header .= "Content-Length: ".$auth_data_len."\r\n"; $header .= "Pragma: no-cache\r\n"; $header .= "Cookie: ruid=".$ruid."\r\n\r\n"; $header .= $auth_data; $sckt = fsockopen("mail.rambler.ru",80); fputs($sckt,$header); while(!feof($sckt)) { $serv_answer = fgets($sckt,2048); if($s = strstr($serv_answer,"rsid=")) // извлекаем переменную rsid из заголовка Set-Cookie ответа сервера { $rsid = substr($s,5,32); } if($s = strstr($serv_answer,"rup=")) // извлекаем переменную rup из заголовка Set-Cookie ответа сервера { $rup = substr($s,4,24); } if($s = strstr($serv_answer,"startpage%3F")) // извлекаем урл редиректа из заголовка Location ответа сервера { $startpage = substr($s,12,4); } } fclose($sckt); 1 сформировали пакет 2 открыли сокет 3 отправили пакет 4 получили ответ, отпарсили необходимую инфу 5 закрыли сокет 6 вернулись в пункт 1. И так по циклу сколько хочешь
тс, тебе нужно тупо получить страницу? тогда вот - http://mrthe.name/2009/03/sockets-php/ а вообще советую юзать курл.
Решил не создавать новую тему.. Подскажите самый простой Http запрос . измучился уже. Взял пример из википедии: обращаюсь и пишет бэд реквест. я хз )
PHP: $header = "GET / HTTP/1.1\r\n"; $header .= "Host: $server\r\n"; $header .= "Accept: text/html\r\n"; $header .= "Connection: close\r\n"; $sckt = fsockopen("$server",80); fputs($sckt,$header); while(!feof($sckt)) { $serv_answer = fgets($sckt,2048); echo $serv_answer.'<br><br>'; } fclose($sckt);
Что будет означать обычный гет запрос. Учимся смотреть контекст ответа. /showpost.php?p=1445002&postcount=10
Что неправильного в запросе GET / HTTP/1.1\r\n Host: mail.ru\r\n Accept: text/html\r\n Connection: close\r\n\r\n ?
После последнего заголовка должна идти пустая строка. Так было испокон веков. О каких неправильных запросах идет речь? ЗЫ: Krist_ALL, не надо переменные сувать в кавычки. PHP: function("$variable"); // не тру function($variable); // тру
Я про то что если в хедаре отсылаеться GET то он как GET и будет обрабатываться, в твоем примере все правильно.