本例子是使用了file_get_contents()函数来抓取图片内容然后再使用fopen保存到本地服务器了,然后再进行地址url替换这样就实现了一个完整的页面采集功能并保存地址到本地的做法了,下面来看看例子。
首先举个例子吧。 代码如下:
代码如下 | 复制代码 | ||||||||||||
$text=file_get_contents("http://www.jquerycn.cn"); //取得所有img标签,并储存至二维阵列match preg_match_all('//', $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,CURLOPT_RETURNTRANSFER,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; } ?> 案例分析,核心代码如下
|