Php 如何替换<;img>;带有<;amp img>;标签?

Php 如何替换<;img>;带有<;amp img>;标签?,php,google-amp,Php,Google Amp,我想将HTML页面转换为Google AMP页面,但我有一个问题,我有很多 嗨,兄弟 变成这样: <img src='apa.png'><br> hi bro <img src="c.png'> 嗨,兄弟 我曾尝试用PHP替换这些标记,但没有成功。如果HTML文件中存在此HTML,那么您需要做的就是使用搜索替换,如果HTML文件中存在此HTML,那么您需要做的就是使用搜索替换,您可以使用preg\u replace将模式替换为字符串() 请尝试以下代码

我想将HTML页面转换为Google AMP页面,但我有一个问题,我有很多

嗨,兄弟
变成这样:

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

嗨,兄弟

我曾尝试用PHP替换这些标记,但没有成功。

如果HTML文件中存在此HTML,那么您需要做的就是使用
搜索替换
,如果HTML文件中存在此HTML,那么您需要做的就是使用
搜索替换
,您可以使用preg\u replace将模式替换为字符串()

请尝试以下代码:

<amp-img src="$2" width="800" height="684" layout="responsive" alt="AMP"</amp-img>
echo htmlentities(预替换(
'//', 
'', 
“
你好,兄弟” ));
您可以使用preg\u replace将模式替换为字符串()

请尝试以下代码:

<amp-img src="$2" width="800" height="684" layout="responsive" alt="AMP"</amp-img>
echo htmlentities(预替换(
'//', 
'', 
“
你好,兄弟” ));
我当时正处于一个需要更改一个元字段(WordPress自定义WYSIWYG字段)中所有图像标记的情况,我认为这可能会帮助其他人。此代码基本上是此处发布的一些响应的组合,稍作修改,如

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">'
));
echo preg\u replace(
'//', 
'', 
$meta_字段_输出
);

我当时正处于一个需要更改一个元字段(WordPress自定义WYSIWYG字段)中所有图像标记的情况,我认为这可能会帮助其他人。此代码基本上是此处发布的一些响应的组合,稍作修改,如

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">'
));
echo preg\u replace(
'//', 
'', 
$meta_字段_输出
);

在测试regex一段时间后,我找到了一个符合我需求的解决方案

   echo preg_replace(
        '/<img .*? src="([^"]*)" .*?>/', 
        '<amp-img src="$1" width="600" height="600" layout="intrinsic" alt="AMP"></amp-img>', 
        $meta_field_output
    );
返回preg_replace_回调('/'),
函数($found){
$size=(getimagesize($found[2]);
返回“”;
},$html);

在测试regex一段时间后,我找到了一个符合我需求的解决方案

   echo preg_replace(
        '/<img .*? src="([^"]*)" .*?>/', 
        '<amp-img src="$1" width="600" height="600" layout="intrinsic" alt="AMP"></amp-img>', 
        $meta_field_output
    );
返回preg_replace_回调('/'),
函数($found){
$size=(getimagesize($found[2]);
返回“”;
},$html);

到目前为止,您到底尝试了什么?这个HTML在哪里?它们是弦吗?或者它们在HTML文件上?到目前为止你到底尝试了什么?这个HTML在哪里?它们是弦吗?或者它们在HTML文件上?请不要忘记
。我将答案更改为使用regex find and replace,其中也考虑了结束标记。请不要忘记
。我将答案更改为使用regex find and replace,其中也考虑了结束标记。使用
htmlentities()的目的是什么
此处?仅在使用浏览器测试代码时显示结果。删除htmlentities()函数时,结果将无法正确显示,因为浏览器将解释为html标记。改用如何?例如,请参见。但是有一个问题-如何调整表达式以同时匹配
(注意前面的结尾
/
有空格和没有空格)?只要
img
标记中还有其他内容,这就不起作用了。例如,它与
不匹配。正则表达式应该是
/
,以便不仅匹配空格,而且匹配
src
字符串结尾和标记
结尾之间的所有字符。在这里使用
htmlentities()
的目的是什么?只需在使用浏览器测试代码时显示结果即可。删除htmlentities()函数时,结果将无法正确显示,因为浏览器将解释为html标记。改用如何?例如,请参见。但是有一个问题-如何调整表达式以同时匹配
(注意前面的结尾
/
有空格和没有空格)?只要
img
标记中还有其他内容,这就不起作用了。例如,它与
不匹配。正则表达式应该是
/
,以便不仅匹配空格,而且匹配
src
字符串结尾和标记
结尾之间的所有字符。