富文本中图片的域名转换

富文本中图片的域名转换

前提是获得一串富文本
富文本中有展示的图片但是路径没有域名
调用该方法将图片地址替换追加域名

  • 替换编辑器中的图片
  • @param string $content 要替换的内容
  • @param string $strUrl 内容中图片要加的域名
  • @param integer $type 类型:0=减少域名,1=增加域名
  • @return string
  • @eg
function replacePicUrl($content = null, $strUrl = null, $type=0)
{

	   if ($strUrl) {
	        //提取图片路径的src的正则表达式 并把结果存入$matches中
	        preg_match_all("/<img(.*)src=\"([^\"]+)\"[^>]+>/isU",$content,$matches);
	        $img = "";
	        if(!empty($matches)) {
	            //注意,上面的正则表达式说明src的值是放在数组的第三个中
	            $img = $matches[2];
	        }else {
	            $img = "";
	        }
	        if (!empty($img)) {
	            $patterns= array();
	            $replacements = array();
	            foreach($img as $imgItem){
	                if($type){
	                    $final_imgUrl = $strUrl.$imgItem;
	                }else{
	                    $final_imgUrl = str_replace($strUrl, '', $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);
 
            return $vote_content;
	        }else {
	            return $content;
	        }
	    } else {
	        return $content;
	    }
}

版权声明:本文为weixin_48656292原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。