xpatval Posté 25 Avril 2005 Posté 25 Avril 2005 Bonjour, après-midi, Ayant un souci d'utilisation de HTMLAREA, qui n'est pas "compatible" Xhtml strict, je merdoie lamentablement sur la transformation des balises html, qui sont traduites en majuscule à la sortie de htmlarea. Les regex n'étant pas mon fort, quel peut-être le code pour transformer ces balises, en minuscule ? Sachant qu'il peut y avoir plusieurs mêmes balises dans une saisie ? Auriez-vous une idée qui m'aiderait ? Merci, xpatval
Titag Posté 25 Avril 2005 Posté 25 Avril 2005 Bonjour, Je ne connais pas du tout htmlarea mais je suppose que la fonction strtolower() pourrait t'être utile... non ?
xpatval Posté 25 Avril 2005 Auteur Posté 25 Avril 2005 Non, le strtolower() convertit tous les caractères, y compris ceux du texte.
Anonymus Posté 25 Avril 2005 Posté 25 Avril 2005 Il faut faire une recherche des balises html, et leur renvoyer la version 'minuscule' preg_replace("/(<\/?)(\w+)([^>]*>/e", "'\\1'.strtolower('\\2').'\\3'", $html_body); Anonymus.
xpatval Posté 25 Avril 2005 Auteur Posté 25 Avril 2005 Heu... Je viens de tester rapidement avec ceci: <body><?php$text = "<P>Il était. Une fois, la PRISE dE la Bastille.</P>";#$text = strtolower($text);preg_replace("/(<\/?)(\w+)([^>])*>/e", "'\\1'.strtolower('\\2').'\\3'", $text);print $text;?></body> Lorsque je regarde le source de la page: <body><P>Il était. Une fois, la PRISE dE la Bastille.</P></body></html> Les balises paragraphes restent en majuscule. xpatval
xpatval Posté 25 Avril 2005 Auteur Posté 25 Avril 2005 Anonymous, il manquait une parenthèse dans ton code, aussi, je l'ai placé ici: $com_long = preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtolower('\\2').'\\3'", $com_long); C'est à dire avant le /e de la première partie En espérant ne pas m'être planté... xpatval
Anonymus Posté 25 Avril 2005 Posté 25 Avril 2005 Ca donne ca : <html><body><?phpecho"<hr>";$text = "<p>Il était. Une fois, la PRISE dE la Bastille.</P>";$text = preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtoupper('\\2').'\\3'", $text);$text=str_replace("<","<",$text); echo $text."\n";echo"<hr>";$text = "<p>Il était. Une fois, la PRISE dE la Bastille.</P>";$text = preg_replace("/(<\/?)(\w+)([^>]*>)/e", "'\\1'.strtolower('\\2').'\\3'", $text);$text=str_replace("<","<",$text); echo $text."\n";echo"<hr>";?></body></html>
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant