Нашел свою функцию для работы с сокетами. Если нет курла, то очень удобно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?php set_time_limit(0); ob_implicit_flush (); // //mr.The (C) // /** Функция получения страницы с использованием сокетов **/ function get_page($site,$page,$ref='',$cookie='',$post='',$isheaders=false,$ua='Opera 9.27 (compatible; MSIE 6.0; Windows NT 5.1; ru)') { $page=trim($page); $site=trim($site); $socket = fsockopen($site, 80, $errno, $errstr, 15); if ($socket){ if ($post!=''){ $send = "POST $page HTTP/1.0\r\n"; $send .= "Content-Length: ". strlen($post) ."\r\n"; $send .= "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"; } else $send = "GET $page HTTP/1.0\r\n"; $send .= "User-Agent: $ua\r\n"; $send .= "Host: $site\r\n"; $send .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; if($ref!='') $send .= "Referer: $ref\r\n"; if($cookie!=''){ $send .= "Cookie: $cookie\r\n"; $send .= 'Cookie2: $Version=1'."\r\n"; } $send .= "Accept-Language: ru,en;q=0.9,ru-RU;q=0.8\r\n"; $send .= "Connection: close\r\n\r\n".$post; if(fputs($socket,$send)) { if(!$isheaders) while(fgets($socket,1024)!="\r\n" && !feof($socket)); $he=""; while(!feof($socket)) $he.=fread($socket,10240); }; fclose($socket); } return $he; }; ?> |
Похожие записи:
августа 2, 2009 at 21:58
[...] Баг он пофиксил заюзав заюзав мою функцию [...]
августа 9, 2009 at 22:25
[...] функции для сокетов, только с использованием курла. Постоянно теряю её на [...]