我想将HTML页面转换为Google AMP页面,我遇到了这个问题,我有很多<img>
我希望转换为<amp-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替换这些标签,但它没有用。
答案 0 :(得分:3)
您可以使用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">'
));
答案 1 :(得分:2)
我当时只是需要在一个meta字段(一个WordPress自定义WYSIWYG字段)中更改所有图像标签的情况,我认为这可能会对其他人有所帮助。这段代码基本上是此处发布的一些响应的组合,略有修改,因为<img>
标签在src之前包含了额外的信息:
echo preg_replace(
'/<img .*? src="([^"]*)" .*?>/',
'<amp-img src="$1" width="600" height="600" layout="intrinsic" alt="AMP"></amp-img>',
$meta_field_output
);
答案 2 :(得分:0)
如果HTML文件中存在此HTML,那么您需要做的就是使用<img src=
进行搜索替换<amp-img width="800" height="684" layout="responsive" alt="AMP" src=
如果您的编辑器能够使用常规rexpression查找和替换,请在FIND
上使用以下正则表达式:
<img src=("|')(.*)'>
并关注REPLACE
:
<amp-img src="$2" width="800" height="684" layout="responsive" alt="AMP"</amp-img>
我和Dreamwearver一起尝试过,它对我有用。
答案 3 :(得分:-1)
经过一段时间的正则表达式测试,我找到了满足我需求的解决方案,
return preg_replace_callback('/<img[\s*]alt="([^"]*)"[\s*]src="([^"]*)"([\s*]?)((.*?)+?)>/',
function ($found) {
$size = (getimagesize($found[2]));
return '<amp-img src="' . $found[2] . '" width="'. $size[0] .'" height="' . $size[1] . '" layout="responsive" alt="' . $found[1] .'"></amp-img>';
}, $html);