Aller au contenu

BaZouL

Membre
  • Compteur de contenus

    5
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre
  1. Okay, merci ! (je l'avais oublié ce <pre> )
  2. Merci beaucoup pour toutes ces précisions ! C'est parfait ! Tout marche parfaitement maintenant : function optimiseSite($afficheSite) { // $afficheSite contient tout le code XHTML de la page $textarea = array(); $i=0; while (preg_match("/<textarea(.*)<\/textarea>/smiU",$afficheSite,$out)) { $textarea[$i] = $out[0]; $afficheSite = preg_replace("/<textarea(.*)<\/textarea>/smiU", "<montextarea>", $afficheSite, 1); $i++; } $afficheSite = str_replace(array("\n","\t","\r"), '', $afficheSite); $i=0; while (preg_match("/<montextarea>/smiU",$afficheSite)) { $afficheSite = preg_replace("/<montextarea>/smiU", $textarea[$i], $afficheSite, 1); $i++; } return $afficheSite; } // Pour afficher la page echo optimiseSite($afficheSite); Encore merci à vous tous ! Ah oui et tant que j'y pense : N'y a-t-il pas d'autres balises html comme <textarea>, où l'on a besoin de garder les retours à la ligne et les tabulations (\n,\r et \t) pour l'affichage ?
  3. Oui Justement c'est ce que je pensais avoir fait avec ma première boucle (stocker les éléments), non ? $i=0; // tant qu'il y a des <textarea...>...</textarea> while (ereg("<textarea(.+)</textarea>",$afficheSite,$out)) { // je stocke chaque <textarea...>...</textarea> dans le tableau $textarea $textarea[$i] = $out[0]; // maintenant que c'est stocké, je remplace les <textarea...>...</textarea> par une balise <montextarea> $afficheSite = ereg_replace("<textarea(.+)</textarea>","<montextarea>",$afficheSite); $i++; } ( et pour le nombre de <textarea...>...</textarea> : count($textarea) ) Mais ça ne fonctionne pas dès qu'il y a plusieurs <textarea...>...</textarea>
  4. Pas bête ! Merci J'ai essayé un truc, ça marche mais j'ai un autre problème. Voici mon code : function optimiseSite($afficheSite) { // $afficheSite contient tout le code XHTML de la page $textarea = array(); $i=0; while (ereg("<textarea(.+)</textarea>",$afficheSite,$out)) { $textarea[$i] = $out[0]; $afficheSite = ereg_replace("<textarea(.+)</textarea>","<montextarea>",$afficheSite); $i++; } $afficheSite = str_replace(array("\n","\t","\r"), '', $afficheSite); $i=0; while (ereg("<montextarea>",$afficheSite,$out)) { $afficheSite = ereg_replace("<montextarea>",$textarea[$i],$afficheSite); $i++; } return $afficheSite; } // Pour afficher la page echo optimiseSite($afficheSite); Lorsqu'il n'y a qu'un seul <textarea ...>...</textarea> dans $afficheSite, ça marche impec: $textarea[0] contient bien quelque chose du genre : <textarea ...>mon texte</textarea> Mon problème survient lorsqu'il y a plusieurs <textarea ...>...</textarea> dans $afficheSite : $textarea[0] contient alors quelque chose comme (si il y a 2 <textarea> par exemple): <textarea ...>mon texte</textarea> du code xhtml... <textarea ...>mon texte 2</textarea> Et $textarea[1] ne contient rien. Alors que normalement, $textarea[0] devrait contenir : <textarea ...>mon texte</textarea> Et $textarea[1] : <textarea ...>mon texte 2</textarea> J'espère que j'ai été assez clair, c'est pas évident à expliquer Voilà ! Une idée pour corriger mon problème ? Merci
  5. Bonsoir à tous ! Voilà, j'ai un petit problème d'expressions régulières... il faudrait vraiment que j'apprenne à bien m'en servir... (d'ailleurs si quelqu'un a des tutos ou des cours la-dessus, c'est pas de refus !) Alors voici mon problème, en gros : J'ai une variable $monSite qui contient tout le code XHTML qui va être envoyé au navigateur pour l'affichage du site. Imaginons que j'ai besoin de remplacer deux mots par un nouveau mot dans cette variable $monSite avant de l'afficher, je fais donc : echo str_replace(array('mot1','mot2'), 'mot3', $monSite); Seulement, je voudrais que mot1 et mot2 soient remplacés par mot3 partout, SAUF lorsqu'ils sont entre les balises <textarea> et </textarea> (par exemple). Voilà pourquoi j'ai besoin des expressions régulières je pense. Merci d'avance pour vos réponses !
×
×
  • Créer...