欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php抓取并下载css中所有图片文件

程序员文章站 2022-05-25 18:56:41
...
  1. if (!is_dir('img')) { mkdir('img'); }
复制代码

> 3、用正则式把图片相对地址取出来:

  1. if (preg_match('/^http.*/',$val)) { $target = $val; }
  2. else if (preg_match('/^\/.*/',$val)) { $target=$host.$val; }
  3. else { $target=$url.$val; }
  4. echo $target."
    \r\n";
复制代码

> 最后把文件名取出来,即 /img/1.gif 中的 1.gif,用于保存文件。

  1. if (!is_file('./img/'.$name[1])) {
  2. $imgc = file_get_contents($target);
  3. $handle = fopen('./img/'.$name[1],'w+');
  4. fwrite($handle,$imgc);
  5. fclose($handle);
  6. }
复制代码

>某次,小邪突然发现 Copy 的强大。 > Copy 居然也可以下载,所以可以轻松使用下面的代码来处理,上面的可以退休鸟。

  1. if (!is_file('./img/'.$name[1])) {
  2. copy($target,'./img/'.$name[1]);
  3. }
复制代码

5、完整源代码: 使用时把 $url 填好即可,然后把所有 CSS 内容存到 abc.css 中即可。

  1. $url = 'http://bbs.it-home.org/css/';
  2. $data = file_get_contents('abc.css');
  3. preg_match('/(.*\/\/.*?)\//',$url,$host);
  4. $host = $host[1];
  5. if (!is_dir('img')) { mkdir('img'); }
  6. $regex = '/url\(\'{0,1}\"{0,1}(.*?)\'{0,1}\"{0,1}\)/';
  7. preg_match_all($regex,$data,$result);
  8. foreach ($result[1] as $val) {
  9. if (preg_match('/^http.*/',$val)) { $target = $val; }
  10. else if (preg_match('/^\/.*/',$val)) { $target=$host.$val; }
  11. else { $target=$url.$val; }
  12. echo $target."
    \r\n";
  13. preg_match('/.*\/(.*\.\D+)$/',$val,$name);
  14. if (!is_file('./img/'.$name[1])) {
  15. copy($target,'./img/'.$name[1]);
  16. }
  17. }?>
复制代码