我有一个应用程序可以加载本地文件并附加下载的HTML数据。此数据有时包含protocol relative URLs,基本上为//domain.com/file
而不是http://domain.com/file
。好处是,这会自动选择适当的协议,这在网络域上可以正常使用,但在本地加载时则不行 - 然后使用file://
- 协议。
因此,我需要将所有attr="//domain.com/file"
替换为attr="http://domain.com/file"
- 基本上在前面添加http:
。最简单的是用PHP做这个我想,我怎么能实现这个呢?
答案 0 :(得分:1)
假设 attr="//
文字不会显示为<p> ... attr="// ... </p>
使用str_replace
$contents = str_replace('attr="//', 'attr="http://', $contents);
使用preg_replace
$contents = preg_replace('|attr="//|', 'attr="http://', $contents);
答案 1 :(得分:1)
使用preg_replace,如果&#39; attr&#39;只在标签内:
$content = preg_replace('@(<.+?)(attr="//)(.*?>)@', '\\1attr="http://\\3', $content);