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

Аналог функции для сокетов, только с использованием курла. Постоянно теряю её на харде, поэтому выложу здесь:

<?php
set_time_limit(0);
ob_implicit_flush ();
//
//mr.The
//
 
/**
Функция получения страницы с использованием курла
**/
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_all("/Set-Cookie: (.*)(; |\n)/Ui",$page,$rnd)) return false;
 
    print_r($rnd);
 
    $co="";
    foreach($rnd[1] as $key) $co.=trim($key).";";
    return $co;
}
?>

Похожие записи:

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