2013-09-02 1 views
0

Hy!Получить изображение через https и php

Я пытаюсь получить изображение на https в php.

, что я нашел что-то вроде этого кода, который показывает мне пустое изображение с правильной шириной, но неправильной высотой:

function getSslPage($url) { 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_REFERER, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $result = curl_exec($ch); 
     curl_close($ch); 
     return $result; 
    } 

    echo getSslPage("https://www..."); 

Я благодарен за любую помощь. :)

+0

Используйте 'curl_error()', чтобы увидеть, что идет не так –

+0

'curl' НЕ изменяет размеры изображения, вероятно, что-то связано с изображением! – undone

+0

У вас почти наверняка есть что-то выходное, кроме данных изображения (например, сообщение об ошибке PHP или пробелы перед открытием тега ' DaveRandom

ответ

0

Он должен работать,

попробовать запустить этот код,

function getSslPage($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_REFERER, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
$ctype="image/png"; 
header('Content-type: ' . $ctype); 
    curl_close($ch); 
    return $result; 
} 

echo getSslPage("https://ssl.gstatic.com/accounts/services/mail/phone.png"); 
2

Это должно сделать это в любой ситуации:

$ch = curl_init ($source_url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER,true); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$rawdata=curl_exec($ch); 
curl_close ($ch); 

$fp = fopen($local_file,'w'); 
fwrite($fp, $rawdata); 
fclose($fp) 
Смежные вопросы