zoukankan      html  css  js  c++  java
  • 远程抓取图片

    本方法只对部分网站图片采集有效

    ini_set("max_execution_time", "45");//设置最大脚本执行时间
    $file = file_get_contents("http://www.lanrentuku.com/tupian/dongwutupian/");
    $preg = "/src=.+/";
    preg_match_all($preg, $file, $img); //全文匹配
    foreach ($img[0] as $v) {
        $preg = "/"http://.+.(jpg|png|jpeg)"/";//二次匹配获取图片
        preg_match($preg, $v, $png);
        if (!empty($png[0])) {
            //将图片下载到本地
            $http = $png[0];
            $http =str_replace('"', '', $http);//替换'"'
            $resouce = file_get_contents($http);
            $suffix = substr($http, strlen($http) - 4);//图片类型截取
            $file_name = date('YmdHis') . 'img' . rand(0, 1000);
            file_put_contents( './uploads/img/'.$file_name . '.' . $suffix, $resouce);//保存图片
        }
    }

    正则匹配函数

    preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

      $matches[0] 将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

      注意:在第一次匹配成功后 将会停止搜索

    preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

      结果排序为 $matches[0] 保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。 

      注意:匹配所有符合要求的结果

  • 相关阅读:
    汤姆大叔的博客
    ajax
    兼容谷歌的光标居中写法
    浅谈服务治理与微服务
    Java线程面试题合集(含答案)
    java设计模式之装饰者模式
    java集合类详解
    java线程-看这一篇就够了
    javaIO详解
    java反射详解
  • 原文地址:https://www.cnblogs.com/zc123/p/5436493.html
Copyright © 2011-2022 走看看