1

我想将 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 替换这些标签,但没有奏效。

4

4 回答 4

5

您可以使用 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">'
));
于 2017-08-10T15:22:17.643 回答
3

我只是在需要更改一个元字段(WordPress 自定义所见即所得字段)中的所有图像标签的情况下,我认为这可能对其他人有所帮助。这段代码基本上是这里发布的一些回复的组合,稍作修改,因为<img>标签在 src 之前有额外的信息:

   echo preg_replace(
        '/<img .*? src="([^"]*)" .*?>/', 
        '<amp-img src="$1" width="600" height="600" layout="intrinsic" alt="AMP"></amp-img>', 
        $meta_field_output
    );
于 2018-07-24T22:09:55.353 回答
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 试过这个,它对我有用。

于 2017-08-10T15:11:20.627 回答
-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);
于 2018-09-25T10:00:12.330 回答