2016-04-15 83 views
0

PNG圖像工作我有這個圖像:和getimagesize()不與具有HTTPS

$imgurl = 'https://www.danmurphys.com.au/media/DM/Product/308x385/913411_0_9999_med_v1_m56577569854513142.png'; 

我嘗試了這些兩個碼

  1. $image = @getimagesize($imgurl); 
    print_r($image); 
    

沒有給出結果。

參見下面第二殼體與功能getRanger開始

  • public static function getRanger($url){ 
        $headers = array(
        "Range: bytes=0-327680" 
        ); 
    
        $curl = curl_init($url); 
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
        $data = curl_exec($curl); 
        curl_close($curl); 
        return $data; 
    } 
    
    $raw = self::getRanger($imgurl); 
    $im  = imagecreatefromstring($raw); 
    
    $width = imagesx($im); 
    $height = imagesy($im); 
    
    echo $width; 
    echo $height; 
    
  • 兩個給我空結果。你們有些人可以幫助我嗎?

    在此先感謝。

    +1

    嘗試不使用@。這是抑制錯誤 – Phil

    +0

    此外,請參閱[curl_error](http://php.net/manual/en/function.curl-error.php)進行調試#2 – Phil

    回答

    0

    第二個就在那裏。

    我敢肯定,呼籲

    echo curl_error($curl); 
    

    後捲曲的執行會給你:SSL證書問題:無法獲取本地頒發者證書

    基本上有兩種方法來解決這個問題 -

    正確的方法

    從下載cacert.pem文件,將它保存在腳本可以到達的地方,並在curl_exec()之前添加以下行:調用

    // Add certification atuhority info 
        curl_setopt($curl, CURLOPT_CAINFO, './path/to/cacert.pem'); 
    

    注意,這不會使用自簽名SSL證書

    快速修復

    你可能想使SSL檢查「鬆」的工作。

    // disable SSL checks 
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 
    

    請注意,即使使用自簽名的SSL證書,此方法也可以工作,但這樣做被認爲是不安全的。

    +0

    請您證明爲什麼要關閉SSL檢查?這聽起來像是服務器問題,因爲證書沒問題。 – Phil

    +0

    @ Phil_1984_我應該指出,這是一個快速修復和不安全的事情。答案改進了。 – Zenithies