<?php
//有时候可能需要要将HTML代码中的全部图片路径匹配出来然后更改路径。网上的一些方法,搜了那么多,都感觉不是那么靠谱与精准,不是我想要的。
//1.先假如有一段HTML的代码:
$content = '<img alt="" src="http://www.tefee.net/js/fckeditor/UserFiles/image/F201005201210502415831196.jpg" width="600" height="366">
<br><br><br><br><img alt="" src="js/fckeditor/UserFiles/image/33_avatar_middle.jpg" width="120" height="120">';
//当然也可以用file_get_content()方法去获取一个HTML的文件,这个方法不理解的话,可以去查手册,就是将文件读入一个字符串中去。
//2.将全部的<img>标签都匹配出来。
preg_match_all("/<img(.*)src=\"([^\"]+)\"[^>]+>/isU",$content,$matches);
//这个匹配很详细,大家不妨将$matched用print_r()打印出来看看效果,记住前后用上<pre>标签更形象哦。完整的<img>标签是在$matches[2]这个第二维数组中的。
// 3.得到全部的<img>完整标签。
if(!empty($matches)){
$img = $matches[2];
}else{
$img = "";
}
print_r($img);
// 4.得到图片路径并更换。
foreach($img as $val){
preg_match("/^.*\//",$val,$res); //先匹配出来图片存储的路径
echo "<br/>";
echo str_replace($res[0],"images/",$val); //将路径全部改成"images/"
}
?>