此方法是用file_get_contents()函數(shù)抓取網(wǎng)站的所有內(nèi)容,然后用正則匹配出內(nèi)容里面的圖片下載下來(lái)。省的自己下載了。首先舉個(gè)例子吧。 代碼如下: $text=file_get_contents("http://www."); //取得所有img標(biāo)簽,并儲(chǔ)存至二維陣列match preg_match_all('/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/', $text, $match); //打印出match $houzhui = "./tp/".time().rand(10000,50000).".".png; $yuanname = getImage($match[1][2],$houzhui,tp); //下載圖片方法 function getImage($url,$filename='',$type=0){ if($url==''){return false;} if($filename==''){ $ext=strrchr($url,'.'); if($ext!='.gif' && $ext!='.jpg'){return false;} $filename=time().$ext; } //文件保存路徑 if($type){ $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,http://www.,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $img=curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $img=ob_get_contents(); ob_end_clean(); } $size=strlen($img); //文件大小 $fp2=@fopen($filename,'a'); fwrite($fp2,$img); fclose($fp2); return $filename; } ?> 這種方法有一個(gè)弊端,比如網(wǎng)站有分頁(yè)的話就沒法抓取下一頁(yè)的內(nèi)容了,那也可以改一下代碼,看一下網(wǎng)站分頁(yè)的鏈接是什么樣的,然后for循環(huán)file_get_contents()函數(shù),把鏈接拼到里面。
|