Php 如何替换<;img>;带有<;amp img>;标签?
我想将HTML页面转换为Google AMP页面,但我有一个问题,我有很多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将模式替换为字符串() 请尝试以下代码
嗨,兄弟
变成这样:
<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
字符串结尾和标记
结尾之间的所有字符。