CURL хедеры в картинке

Discussion in 'PHP' started by alex.k12, 10 May 2009.

  1. alex.k12

    alex.k12 New Member

    Joined:
    3 May 2009
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    Мне нужно получить картинку и вместе с ней 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;
     
    #1 alex.k12, 10 May 2009
    Last edited: 11 May 2009
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    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;  
     
    _________________________
    #2 Gifts, 11 May 2009
    Last edited: 11 May 2009
    2 people like this.
  3. alex.k12

    alex.k12 New Member

    Joined:
    3 May 2009
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    Спасибо, работает замечательно.