网站css内图片下载脚本
觉得功能太烂BUG太多的,想加以改进的朋友,可以下载下面的压缩包进行修改补充,这次我加了足够的注释,方便大家阅读
解压之后把整个文件夹(saveimg1.4)放在www目录下通过浏览器访问http://localhost/saveimg1.4/ 即可使用 saveimg1.4.rar (5 K)
下载百度首页外链式css(http://su.bdimg.com/static/superpage/css/index_min_0ffaafc0.css)为例
--------------------------已修正--------------------------
2012.11.29
代码简化之判断css文件所在的文件夹目录
############################
之前的代码为:
############################
//$url="http://192.168.190.47/phpwind/images/pw_core.css?20111111";
function getbaseurl($url){
$a=ltrim($url,'http://');
$b=explode('/',$a);
array_pop($b);
$c=implode('/',$b);
$baseurl='http://'.$c.'/';
return $baseurl;
}
############################
去掉之前用的切割组合,使用系统默认函数dirname()
echo dirname("http://192.168.190.47/phpwind/images/down.png");
//输出结果为:“http://192.168.190.47/phpwind/images”
2012.11.30
1.bug修复 => 修复即使文件下载为空都提示下载成功的错误。
2.简化下载代码,也许底层执行过程是一样的,只是php代码减少了一点。
--------------------------原代码--------------------------
ob_start();
readfile($url);
$obj=ob_get_contents();
ob_end_clean();
$fp2=fopen($filename,"w");
fwrite($fp2,$obj);
fclose($fp2);
echo $url.'<font color="green">下载成功</font><br/>';
--------------------------修改为--------------------------
$b=file_get_contents($url);
$c=file_put_contents($filename,$b);
if($c!=0){
echo $url.'<font color="green">下载成功</font><br/>';
}else{
echo $url.'<font color="red">下载失败</font><br/>';
}
2012.12.03
css中的图片地址BUG修复
今天在采集新浪的某个页面的时候发现其中的css图片的地址采用的是url(/images/xx.jpg)这样的格式
而不是url(./images/xx.jpg)
也不是url(images/xx.jpg)
这样这个图片的地址就是www_sian.cn/images_xx_jpg
而非www_sian.cn/css/images/xx_jp_g(假设css文件放在了www.sian.cn/css目录下)
这样在获去了css中的图片地址之后则需要做一个正则匹配
下面需要考虑图片地