上面就将远程图片给匹配出来了,我们需要将其保持到本地。这里需要注意两点:
1.图片保存路径(图片存储目录)
2.实际访问图片地址
下面是完整实例:(你可以保存到本地服务器修改相应地方进行测试)

<!DOCTYPEHTML>
<htmllang="en-US">
<head>
<metacharset="UTF-8">
<title>php保存远程图片到本地,php正则匹配文章中的图片地址</title>
</head>
<body>
<?php
//保存文章中远程图片到本地
//作者:yanue;
//文件保存目录路径(请更换为你自己的路径,你可以echo一下)
$save_path=$_SERVER['DOCUMENT_ROOT'].'swfupload/attached/';
//文件保存目录URL
$save_url='/swfupload/attached/';
$save_path=realpath($save_path).'/';
//图片存储目录
$imgPath=$save_path.date("Ymd");
$imgUrl=$save_url.date("Ymd");
//创建文件夹
if(!is_dir($imgPath)){
@mkdir($imgPath,0777);
}
$content='这里是文章内容,这里插入一张图片测试<imgsrc="XXXXXXXXXXXXXXXXXXXX">';
$content=stripslashes($content);
$img_array=array();
//匹配所有远程图片
preg_match_all("/(src|SRC)=["|'|]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png))/isU",$content,$img_array);
//匹配出来的不重复图片
$img_array=array_unique($img_array[2]);
print_r($img_array);
//时间无限制
set_time_limit(0);
foreach($img_arrayas$key=>$value){
$value=trim($value);
//读取远程图片
$get_file=@file_get_contents($value);
//保存到本地图片名称
$imgname=date("YmdHis").'_'.rand(10000,99999).".".substr($value,-3,3);
//保存到本地的实际文件地址(包含路径和名称)
$fileName=$imgPath.'/'.$imgname;
//实际访问的地址
$fileurl=$imgUrl."/".$imgname;
//文件写入
if($get_file){
$fp=@fopen($fileName,"w");
@fwrite($fp,$get_file);
@fclose($fp);
}
//替换原来的图片地址
$content=ereg_replace($value,$fileurl,$content);
}
echo$content;
?>
</body>
</html>

以上就是php正则匹配文章中的远程图片地址并下载图片至本地的实现技巧,希望对大家的学习有所帮助。

热门推荐

1 毛坯房验收经验和常识 看了之后再验房心里有底
2 二手房收房如何交接 二手房收房注意问题
3 专业验收毛坯房的价格 商品房验收合格的标准
4 精装房怎么验收 精装房请验房师有用吗
5 一般要到哪里找验房师 验房师有哪些作用呢
6 请人验房一般是多少钱 验房师费用是多少
7 怎样测量房子面积 建筑面积和使用面积怎么算
8 收房需要注意什么 仔细检查不松懈
9 收房时三书一证一表是什么 主要作用介绍
10 交房时交房税费有哪些 本文为你一一讲解
11 验房都需要验什么 要做哪些准备呢
12 毛坯房验房师有必要请吗 毛坯房装修完如何验收
13 地下室防水工程质量验收规范详解
14 水性涂料、油性涂料区别介绍
15 零基础布艺DIY工坊 教你做超萌猫头鹰钥匙包
16 三棵树漆怎么样?三棵树漆官方网站
17 家庭“装修套餐”中猫腻你知道吗?
18 小空间大浴望 卫浴间装修巧支招