Skip to content

Instantly share code, notes, and snippets.

@adactio
Last active Nov 15, 2021
Embed
What would you like to do?
Make a chunk of markup AMP-ready
<?php
# Licensed under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
# http://creativecommons.org/publicdomain/zero/1.0/
function ampify($html='') {
# Replace img, audio, and video elements with amp custom elements
$html = str_ireplace(
['<img','<video','/video>','<audio','/audio>'],
['<amp-img','<amp-video','/amp-video>','<amp-audio','/amp-audio>'],
$html
);
# Add closing tags to amp-img custom element
$html = preg_replace('/<amp-img(.*?)>/', '<amp-img$1></amp-img>',$html);
# Whitelist of HTML tags allowed by AMP
$html = strip_tags($html,'<h1><h2><h3><h4><h5><h6><a><p><ul><ol><li><blockquote><q><cite><ins><del><strong><em><code><pre><svg><table><thead><tbody><tfoot><th><tr><td><dl><dt><dd><article><section><header><footer><aside><figure><time><abbr><div><span><hr><small><br><amp-img><amp-audio><amp-video><amp-ad><amp-anim><amp-carousel><amp-fit-rext><amp-image-lightbox><amp-instagram><amp-lightbox><amp-twitter><amp-youtube>');
return $html;
}
?>
@laocoi
Copy link

laocoi commented Apr 11, 2017

I have a problem with add width and height value for image on AMP. Can anyone please tell me how to do it?

Old code:

<img src="/url-img1.jpg" with="728"></img>
<img src="/url-img2.jpg" with="640"></img>

And in AMP version:

<amp-img src="/url-img1.jpg" width="{widht-of-image}" height="{height-of-image}" layout="responsive"></amp-img>
<amp-img src="/url-img2.jpg" width="{widht-of-image}" height="{height-of-image}" layout="responsive"></amp-img>

@dimaslanjaka
Copy link

dimaslanjaka commented Apr 29, 2017

How it works ?.

@savankaneriya
Copy link

savankaneriya commented Apr 2, 2018

thanks , it helped alot .

@rahulkhosla
Copy link

rahulkhosla commented Apr 21, 2018

I Googled' it and found this for anyone wanting to use it for WordPress.

Nice job Adactio, seems like you got the credit too!

@Stefany93
Copy link

Stefany93 commented Jul 26, 2018

^^ Is there a node.js equivalent to this? I need it for my Gruntfile. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment