思路是这样:
先用正则表达式获取IMG标签,然后把每个IMG标签的SRC抽取出来,并且组合成自己的内容,最后进行替换。
例子如下所示:
//要替换的内容
$content = '<img alt="" src="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">';
//提取图片路径的src的正则表达式
preg_match_all("/<img(.*)src=\"([^\"]+)\"[^>]+>/isU",$content,$matches);
$img = "";
if(!empty($matches)) {
//注意,上面的正则表达式说明src的值是放在数组的第三个中
$img = $matches[2];
}else {
$img = "";
}
if (!empty($img)) {
$img_url = "http://".$_SERVER['SERVER_NAME'];
$patterns= array();
$replacements = array();
foreach($img as $imgItem){
$final_imgUrl = $img_url.$imgItem;
$replacements[] = $final_imgUrl;
$img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";
$patterns[] = $img_new;
}
//让数组按照key来排序
ksort($patterns);
ksort($replacements);
//替换内容
$vote_content = preg_replace($patterns, $replacements, $content);