t0wer
BlackHerald
- Регистрация
- 24 Июн 2008
- Сообщения
- 743
- Реакции
- 441
- Автор темы
- #1
1) получаем страницу c использованием curl
2) получаем страницу c использованием сокетов
PHP:
<?php
//mr.The
set_time_limit(0);
ob_implicit_flush ();
/**
Функция получения страницы с использованием курла
**/
function get_page($url,$post='',$ref='',$cookie='',$ua="Opera 9.64 (compatible; MSIE 6.0; Windows NT 5.1; ru)",$proxy='') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT,$ua);
curl_setopt($ch, CURLOPT_REFERER,$ref);
curl_setopt($ch, CURLOPT_PROXY , $proxy);
if($post!==''){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$headers [] = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
$headers [] = "Accept-Language: ru,en;q=0.9,ru-RU;q=0.8";
$headers [] = "Connection: close";
$headers [] = "Cache-Control: no-store, no-cache, must-revalidate";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 1); // тут лучше поставить 0, если куки не нужны
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
@curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
$result = curl_exec($ch);
curl_close($ch);
if($result)return $result; else return false;
}
function get_cookie($page) { // и бонус, для парсинга кукисов
if(preg_match("|Set-Cookie: (.*)\n|Uis",$page,$rnd)) return $rnd[1];
else return false;
}
?>
2) получаем страницу c использованием сокетов
PHP:
<?php
//mr.The (C)
set_time_limit(0);
ob_implicit_flush ();
/**
Функция получения страницы с использованием сокетов
**/
ffunction get_page($site,$page,$isheaders=false,$ua='Opera 9.27 (compatible; MSIE 6.0; Windows NT 5.1; ru)',$ref='',$cookie='',$post='')
{
$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;
};
?>