远程抓取图片

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

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] 保存第一个子组的所有匹配,以此类推。 

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

原文地址:https://www.cnblogs.com/zc123/p/5436493.html