如何使用标签替换HTML中的标签?

问题描述:

我想将HTML页面转换为Google AMP页面,并且我遇到了这个问题,其中有很多<img>,我想将它们变成<amp-img>标记。如何使用<amp-img>标签替换HTML中的<img>标签?

例如,我想转:

<img src='apa.png'><br> 
hi bro <img src="c.png'> 

弄成这个样子:

<amp-img src="apa.png" width="800" height="684" layout="responsive" alt="AMP"></amp-img><br/> 
hi bro <amp-img src="c.png" width="800" height="684" layout="responsive" alt="AMP"></amp-img> 

我试着用PHP来取代这些标签,但没有奏效。

+1

正是你试过到目前为止什么? – localheinz

+0

这个HTML在哪里?他们是字符串吗?或者他们在HTML文件? –

您可以使用preg_replace将字符串替换为模式(http://php.net/manual/en/function.preg-replace.php)。

试试这个代码:

echo htmlentities(preg_replace(
    '/<img src="([^"]*)"\s*\/?>/', 
    '<amp-img src="$1" width="800" height="684" layout="responsive" alt="AMP"></amp-img>', 
    '<img src="apa.png"><br>hi bro <img src="c.png">' 
)); 
+0

在这里使用'htmlentities()'的目的是什么? – localheinz

+0

Juste在使用浏览器测试代码时显示结果。当删除htmlentities()函数时,结果将不会正确显示,因为浏览器会将解释为html标记。 –

+0

如何使用http://3v4l.org代替?例如,请参阅https://3v4l.org/dKcD2。 – localheinz

如果HTML是存在于HTML文件,那么所有你需要做的就是做<amp-img width="800" height="684" layout="responsive" alt="AMP" src=

,如果你有一个编辑器,能够发现和使用普通rexpression更换的,使用搜索替换<img src=FIND以下的正则表达式:

<img src=("|')(.*)'> 

及以下的REPLACE

<amp-img src="$2" width="800" height="684" layout="responsive" alt="AMP"</amp-img> 

我用Dreamwearver试过这个,它适合我。

+0

不要忘了''标签也需要关闭:https://ampbyexample.com/components/amp-img/。 – localheinz

+0

我改变了使用正则表达式查找和替换的答案,它也考虑了结束标记。 –