php使用curl來獲取遠程圖片

 

<?php
$url = "圖片絕對地址/thumbnail.jpg";
$filename = 'curl.jpg';
getImg($url, $filename);
/*
  *@經過curl方式獲取制定的圖片到本地
  *@ 完整的圖片地址
  *@ 要存儲的文件名
 */
function getImg($url = "", $filename = "") {
    if(is_dir(basename($filename))) {
        echo "The Dir was not exits";
        return false;
    }
    //去除URL鏈接上面可能的引號
    $url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url );
    $hander = curl_init();
    $fp = fopen($filename,'wb');
    curl_setopt($hander,CURLOPT_URL,$url);
    curl_setopt($hander,CURLOPT_FILE,$fp);
    curl_setopt($hander,CURLOPT_HEADER,0);
    curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
    //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以數據流的方式返回數據,當爲false是直接顯示出來
    curl_setopt($hander,CURLOPT_TIMEOUT,60);
    /*$options = array(
        CURLOPT_URL=> '/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg',
        CURLOPT_FILE => $fp,
        CURLOPT_HEADER => 0,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_TIMEOUT => 60
    );
    curl_setopt_array($hander, $options);
    */
    curl_exec($hander);
    curl_close($hander);
    fclose($fp);
    return  true;
}
?>

 

 

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'ht(空格)tp://ww(空格)w.fantuan(空格)pu.com/data/attachment/forum/201405/27/001523qiithinnccttzc6i.jpg'); 
curl_setopt($curl, CURLOPT_REFERER, '');
curl_setopt($curl, CURLOPT_USERAGENT, 'Baiduspider');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl);
header('Content-type: image/JPEG');
echo $result;

關鍵是設置CURLOPT_RETURNTRANSFER爲1,不馬上顯示,而後設置header,讓網頁以jpeg方式解釋,最後才echo輸出數據;php

相關文章
相關標籤/搜索