Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   CURL хедеры в картинке (https://forum.antichat.xyz/showthread.php?t=120059)

alex.k12 10.05.2009 23:49

CURL хедеры в картинке
 
Мне нужно получить картинку и вместе с ней id php-сессиии (из приходящего Set-cookie хедера) в одном запросе. Чтобы получить id сессии надо включить curl_setopt($ch, CURLOPT_HEADER, 1); , но тогда хедеры смешаются с картинкой и return $ss; не возвратит чистую картинку. Можно конечно отделить хедеры от картинки вручную, но это муторно (или нет?). Есть какой-нибудь простой способ, чтобы прочитать хедеры и вывести чистую картинку?

PHP код:

    $ch curl_init();  
    
curl_setopt($chCURLOPT_URL,$url);
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION,0);
    
curl_setopt($chCURLOPT_TIMEOUT15);
    
curl_setopt($chCURLOPT_PROXY$proxy);    
    
    
$headers[] = $ua;
    
$headers[] = 'Accept:image/png,image/*;q=0.8,*/*;q=0.5';
    
$headers[] = 'Accept-Language:ru,en-us;q=0.7,en;q=0.3';
    
$headers[] = 'Accept-Encoding:gzip,deflate';
    
$headers[] = 'Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7';
    
$headers[] = 'Keep-Alive:300';
    
$headers[] = 'Proxy-Connection:keep-alive';    
    
curl_setopt($chCURLOPT_HTTPHEADER$headers);    
    
    
$ss=curl_exec($ch);
    
curl_close($ch);

    
    
$sessid=substr($ssstrpos($ss"PHPSESSID=")+1026);
    if (
$sessid) echo "Session ID: $sessid<br>";
    
    return 
$ss


Gifts 11.05.2009 09:42

alex.k12
PHP код:

 $ch curl_init();  
    
curl_setopt($chCURLOPT_URL,$url);
    
curl_setopt($chCURLOPT_HEADER1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION,0);
    
curl_setopt($chCURLOPT_TIMEOUT15);
    
curl_setopt($chCURLOPT_PROXY$proxy);    
    
    
$headers[] = $ua;
    
$headers[] = 'Accept:image/png,image/*;q=0.8,*/*;q=0.5';
    
$headers[] = 'Accept-Language:ru,en-us;q=0.7,en;q=0.3';
    
$headers[] = 'Accept-Encoding:gzip,deflate';
    
$headers[] = 'Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7';
    
$headers[] = 'Keep-Alive:300';
    
$headers[] = 'Proxy-Connection:keep-alive';    
    
curl_setopt($chCURLOPT_HTTPHEADER$headers);    
    
    
$ss=curl_exec($ch);
    
curl_close($ch);

    
    
$sessid=substr($ssstrpos($ss"PHPSESSID=")+1026);
    if (
$sessid) echo "Session ID: $sessid<br>";
    list(,
$out) = explode("\r\n\r\n"$ss2);
    return 
$out


alex.k12 11.05.2009 13:02

Спасибо, работает замечательно.


Время: 18:59