国产视频app看到了網上有不少的遠程圖片保存到本地的方法,晚上就隨手用php寫了一個函數,可以利用url抓取指定的網頁,然后網頁內的圖片批量抓取并保存到本地。功能的實現很簡單,稍微變通一下就可以用到其它地方了,比如保存網上復制的文章內,圖片也隨之保存到本地。

php保存遠程圖片到本地的函數

<?php
function save_img($html,$host){ 
    //正規匹配HTML代碼中的img地址
    preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i', $html, $match);
    foreach($match[1] as $imgurl){
        //檢測圖片地址的全法性
        //這里可以自己寫規則,
        if(strpos($imgurl, 'http') !== false ){
            $arcurl = $imgurl;
        } else {
            $arcurl = $host.$imgurl;
        }
        $img = file_get_contents($arcurl);
        if(!empty($img)) {
            //隨機文件名
            $fileimgname = time().rand(1000,9999).".jpg";
            $filecachs="/".$fileimgname;
            //保存圖片到服務器
            @file_put_contents($filecachs, $img );
        }
    }
    return true;
}
?>

函數說明:

1、函數的傳入參數,為一串含有html代碼的網頁源碼與抓網站的網址

国产视频app2、網頁的源碼中,必需要包含 img html標簽

3、函數正規匹配 img 標簽里面的圖片地址

国产视频app4、利用圖片地址,抓取圖片并保存到本地

5、如果遠程圖片有防盜鏈,是無法抓取到的

6、關于破解圖片防盜鏈接,可以搜索本博客的相關文章

函數調用:

<?php
$url = 'http://www.baidu.com';
$html = file_get_contents($url);
save_img($html,$url);
?>