我试图构建一个PHP脚本,它将捕获html代码中的所有相对img src
我最终在这段代码中使用了模式和替换功能,这在大多数情况下似乎都有效:
$base = "http://mycdn.example.org";
$text = '<img src="/a.png" />';
$text .= '<img src="//www.google.com/b.png" />';
$text .='<img src="http://www.example.org/c.png" /<';
$pattern = "/<img([^>]*) "."src=\"[^http|ftp|https]([^\"]*)\"/";
$replace = "<img\${1} src=\"" . $base . "\${2}\"";
$text = preg_replace($pattern, $replace, $text);
结果i除了a.png
将被替换为具有$base
路径的绝对URL,但b和c将保持不变。
它适用于c但不适用于b,其中协议从http开始为短,意味着,以2斜杠(//)开头
`//www.google.com/b.png`
任何帮助都应该得到很大的帮助