PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-01-2020 14:39:22

faaramin
Membre
Inscription : 18-01-2020
Messages : 1

Besoin d'un coup de main pour preg_match_all

طراحی سایت

Bonjour à tous.

Je suis nouveau sur le forum et je débute en php.
J'ai beaucoup de mal à conceptualiser certaines choses, les tableaux par exemple, quand ça devient trop compliqué.
Je n'ai pas vraiment un esprit matheux, du coup je suis souvent dépassé..

Bref, je vais essayer de vous expliquer mon souci.

J'utilise un petit Cms que je cherche à modifier un peu pour des besoins perso.
J'ai intégré, pour l'édition de pages, un éditeur (CKeditor).
Tout marche très bien, mais je me suis rendu compte que, quand on insère des images, l'éditeur ajoute automatiquement leurs tailles sous forme de Css, en style incorporé à la balise IMG.
img alt="" src="xxx" style="height: 269px; width: 666px;"  par exemple.

Or, si l'utilisateur ne pense pas à effacer ces données, les images perdent leur côté "responsive". Ce qui est assez gênant.

Je cherche donc à supprimer height:xxxpx et width:xxxpx du style incorporé, mais sans toucher au reste, éventuellement. Des styles "border, margin" etc qui doivent rester...

Je me suis donc tourné vers la fonction preg_match ... et j'ai réussi à faire un truc qui fonctionne comme je veux mais ... ça ne fonctionne que si il n'y a qu'une seule image...

$annonce_contenu_0= $_POST['texte'];
preg_match("#<img (.*)(style=\")(width: ([0-9]+)px;)(.*)(height: ([0-9]+)px;)(.*)(\/>)#Ui", $annonce_contenu_0, $out);  
$trucsaremplacer = array($out[3],$out[6]);
$trucsfinis = array('','');
$contenufinal = str_replace($trucsaremplacer,$trucsfinis,$annonce_contenu_0);
 

Si je poste deux images, ça ne supprime les valeurs que sur une. Je viens donc de comprendre que preg_match s’arrête dès qu’une occurrence est détectée.

J'ai donc continué mes recherches et je pense qu'il faut que j'utilise la fonction preg_match_all .. mais là je coince totalement.

Quelqu'un pourrait il m'aider pour arriver à supprimer ce que je veux grâce à preg_match_all?

Voilà, j'espère avoir été assez précis.

Merci .

Dernière modification par faaramin (18-01-2020 14:47:49)

Hors ligne

Pied de page des forums