Bonjour a tous,
Merci pour l'attention porté a ce post.
Je suis débutant dans les expressions régulières et j'ai un peu de mal avec. Aprés avoir passer 2heures sans sucés sur le problème je demande un peu d'aide.
Voila mon problème :
Dans un premier temps je souhaiterais remplacer les images par img src='le nom de l'image'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $s_input ="<gallery>Fichier:Exemple.jpg|[[Tournesol]] Fichier:Exemple1.jpg|[[La Joconde]] Fichier:Exemple2.jpg|Un [[hamster]]</gallery>"; $s_input = preg_replace('#<gallery>(Fichier:(.*)\|(\[*|.*)(.*|\]*))*</gallery>#', '<img src="$2"', $s_input); do_dump($s_input);
J'explique ma logique :
1. tous ce qui se trouve dans galery peut etre répété 1 ou plusieur fois (dou la parenthése général suivit de * => (Fichier.*)\|(\[*|.*).*\]*)* <=.
2. ce qui se trouve entre Fichier jusque | => Fichier.*)\| <=
3.(\[*|.*) => on peux avoir soit plusieurs crochets soit du texte direct (Exemple2.jpg|Un [[hamster]] ou Exemple2.jpg|[[Un hamster]] on peux aussi avoir que du texte)
4. on a du texte ou plusieur ]
Le resultat pour le moment => 1 image avec pour src toute la chaine presque.
A force de bidouiller j'ai réussit a avoir 3 img mais la la src n'etais pas correct.
Voila merci a ceux qui répondrons.
Bon code a tous.






Répondre avec citation





Partager