替换html里面的图片相对路径地址为绝对路径

mac2024-12-08  25

项目要用到使用正则函数preg_replace_callback把图片相对路径替换为绝对路径,自己写的函数记录下来以备以后复用

function pregReplaceImg($content,$prefix) { $contentAlter = preg_replace_callback('/src=[\'\"]([\s\S]*?)[\'\"][\s\S]*?/i', function($match)use($prefix){ if(strstr($match[1], 'http://')==false && strstr($match[1], 'https://')==false) return 'src="'.$prefix.$match[1].'"'; else return 'src="'.$match[1].'"'; } , $content); return $contentAlter; }

继续优化该函数,忽略匹配非图片调用的路径,如js路径

function pregReplaceImg2($content,$prefix) { $contentAlter = preg_replace_callback('/(<[img|IMG].*?src=[\'\"])([\s\S]*?)([\'\"])[\s\S]*?/i', function($match)use($prefix){ if(strstr($match[2], 'http://') == false && strstr($match[1], 'https://') == false) return $match[1].$prefix.$match[2].$match[3]; else return $match[1].$match[2].$match[3]; } , $content); return $contentAlter; }

c o n t e n t 为 需 要 替 换 的 h t m l 代 码 , content为需要替换的html代码, contenthtmlprefix为图片域名地址路径前缀

最新回复(0)