web-dev-qa-db-fra.com

Modifier la source de l'image avec le filtre The_Content?

Je suis très inexpérimenté avec regex, cependant j'essaye de créer une fonction qui filtre à travers the_content() et get_the_content() afin de modifier le SRC de toutes les images. Le but recherché serait de modifier l'URL pour utiliser http://i0.wp.com/ au lieu de http://. Cela permettrait aux publications d'utiliser l'API Photon sans avoir besoin du côté JS de Photon.

Je sais que je dois utiliser the_content() en utilisant un filtre pour y parvenir, mais je n’étais pas en mesure de le faire en utilisant str_replace(). Je suppose donc que preg_replace() fonctionnerait.

En outre, s'il est possible d'ajouter ?quality=70&strip=all à la fin de l'URL, cela contribuerait à réduire la vitesse de la page.

Des pensées?

1
Austin Biggs

Essayons:

$str = '<img src="http://myserver.mydomain/picture.png" />';
$pattern ='#<img src="http://.*/(.*)" />#';
$replace = '<img src="http://http://i0.wp.com/$1?quality=70&strip=all />"';
$result = preg_replace($pattern, $replace, $str);

Le motif $ est assez simple et très spécifique. Vous devrez peut-être généraliser un peu plus mais cela devrait vous indiquer la direction à suivre. Par exemple. il ne prend pas soin des espaces blancs possibles. Une première tentative pour résoudre ce problème:

$pattern ='#<\s*img\s*src\s*=\s*"http://myserver.mydomain/(.*)"\s*/\s*>#';
1
Latz