Мне нужно получить картинку и вместе с ней id php-сессиии (из приходящего Set-cookie хедера) в одном запросе. Чтобы получить id сессии надо включить curl_setopt($ch, CURLOPT_HEADER, 1); , но тогда хедеры смешаются с картинкой и return $ss; не возвратит чистую картинку. Можно конечно отделить хедеры от картинки вручную, но это муторно (или нет?). Есть какой-нибудь простой способ, чтобы прочитать хедеры и вывести чистую картинку? PHP: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,0); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_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($ch, CURLOPT_HTTPHEADER, $headers); $ss=curl_exec($ch); curl_close($ch); $sessid=substr($ss, strpos($ss, "PHPSESSID=")+10, 26); if ($sessid) echo "Session ID: $sessid<br>"; return $ss;
alex.k12 PHP: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,0); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_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($ch, CURLOPT_HTTPHEADER, $headers); $ss=curl_exec($ch); curl_close($ch); $sessid=substr($ss, strpos($ss, "PHPSESSID=")+10, 26); if ($sessid) echo "Session ID: $sessid<br>"; list(,$out) = explode("\r\n\r\n", $ss, 2); return $out;