xpatval Posté 25 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 25 Avril 2005 Partager Posté 25 Avril 2005 Bonjour, Je ne connais pas du tout htmlarea mais je suppose que la fonction strtolower() pourrait t'être utile... non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 25 Avril 2005 Auteur Partager Posté 25 Avril 2005 Non, le strtolower() convertit tous les caractères, y compris ceux du texte. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 25 Avril 2005 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 25 Avril 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 25 Avril 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 25 Avril 2005 Partager 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> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant