帝国CMS给内容字段图片加链接函数,第一个参数是内容,第2个参数是替换域名。
function domainReplace($text, $url){ $pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; $text = stripSlashes($text); return preg_replace_callback($pattern, function($matches) use($url) { if ('/' !== substr($matches[1], 0, 1) && 'http' !== substr($matches[1], 0, 4)) { return str_replace($matches[1], $url . $matches[1], $matches[0]); } return $matches[0]; }, $text); }
升级版
function domainReplace($content = '', $url = '', $s = 0) { $pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\"|\'].*?[\/]?>/"; return preg_replace_callback($pattern, function($matches) use ($url) { if (1 === $s && false !== stristr($matches[0], $url)) { return str_replace($url, '', $matches[0]); } elseif (0 === $s && '/' !== substr($matches[1], 0, 1) && 'http' !== substr($matches[1], 0, 4)) { return str_replace($matches[1], $url . $matches[1], $matches[0]); } else { return $matches[0]; } }, $content); }