远程抓取图片
本方法只对部分网站图片采集有效
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] 保存第一个子组的所有匹配,以此类推。
注意:匹配所有符合要求的结果