2016-11-25 26 views
0

我想將圖像從VK保存到文件夾。但是圖像不能正確保存。PHP Curl保存來自VK的動態圖像

我使用的代碼是:

// imageFromURL (Save an image from a URL) 
function imageFromURL($url,$saveto){ 
    $ch = curl_init ($url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
    $raw=curl_exec($ch); 
    curl_close ($ch); 
    if(file_exists($saveto)){ 
     unlink($saveto); 
    } 
    $fp = fopen($saveto,'x'); 
    fwrite($fp, $raw); 
    fclose($fp); 
} 

imageFromURL('https://vk.com/captcha.php?sid=698254154192&s=1', 'Image/Captcha.png'); 

我想那一定不會是一個標準的圖像格式?我怎麼能保存這個,並確保它是一個CURL格式的圖像?

+0

當我運行這個,圖像正確保存到圖像文件夾。然後我可以打開並查看它。這是什麼讓你覺得它不是儲蓄? – WEBjuju

+0

這很奇怪,也許這是PHP版本或允許需要改變的設置。 – zeddex

回答

0

您可以使用exif_imagetype($image)來返回文件的圖像類型。 PNG將返回3.

此外,可以節省前檢查:

$mime_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); 

並檢查MIME類型,你可能會尋找。請注意,由於您依靠遠程服務器正確報告該信息,因此需要進行一些信任。

+0

有什麼辦法強制使用CURL的圖像頭? – zeddex

+0

我修改了我的答案,希望有所幫助。 –