通过https和php获取图像

时间:2013-09-02 13:38:56

标签: php image https

HY!

我正在尝试在php中获取每个https的图像。

我发现的是类似这样的代码,它显示了一个宽度正确但高度错误的空白图像:

    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...");

我很感激任何帮助。 :)

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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");