我有一个HTML文档。我需要替换相对于绝对的url。
BaseUrl:https://www.example.com/example/
例如
/*different types of relative URL that I want to replace with absolute URL*/
<img src="/relative/url/img.jpg" />
<img src="./relative/url/img.jpg" />
<img src="../relative/url/img.jpg" />
<a src="../../relative/url/img.jpg" /></a>
<a href='relative/url/'>example</a>
/*url i don't want them to change*/
<img src="//example.com/img.jpg" />
<img src="http://example.com/img.jpg" />
<img src="https://example.com/img.jpg" />
所需的输出为:
<img src="https://www.example.com/example/relative/url/img.jpg" />
<img src="https://www.example.com/example/relative/url/img.jpg" />
<img src="https://www.example.com/example/relative/url/img.jpg" />
<a src="https://www.example.com/example/relative/url/img.jpg" /></a>
<a href='https://www.example.com/example/relative/url/'>example</a>
但是我必须考虑src,href和action的单引号和双引号属性值
现在我正在尝试像这样preg_replace:
preg_replace('~(?:src|action|href)=[\'"]\K../(?!/)[^\'"]*~',"$baseUrl$0",$html);
但是它仅适用于某些URL。我想要的是让他们使用我之前提到的所有相对URL。
感谢您的帮助。