Бложек теперь на old.mrThe.name. Следите за обновлениями.

Нашел свою функцию для работы с сокетами. Если нет курла, то очень удобно.

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 комментария к “Сокеты и PHP”

  1. Остерегайтесь file_get_contents! | Блог mr.The Пишет:

    [...] Баг он пофиксил заюзав заюзав мою функцию [...]

  2. Curl и PHP | Блог mr.The Пишет:

    [...] функции для сокетов, только с использованием курла. Постоянно теряю её на [...]

Оставить комменатрий: