Posté(e) le 30 mai 201114 a Bonjour, J'ai un petit soucis sur mon code. J'ai un fichier texte.txt qui contient "Test<br>Test". Je souhaite l'afficher dans un textarea. Voila le code : $texte = file_get_contents("texte.txt"); $texte = str_replace("<br />", "\n", $texte); $texte = html_entity_decode(htmlspecialchars_decode($texte)); echo '<form method="get" action="test.php"><textarea name="texte" cols="72" rows="15">'.$texte.'</textarea><input type="submit" value="Valider le texte" /> </form>'; Hors lorsqu'il s'affiche, j'ai droit à deux retour à la ligne au lieu d'un. De l'aide mon bon seigneur :s
Posté(e) le 31 mai 201114 a Sauf erreur de ma part, la fonction "htmlspecialchars_decode" décode les entités HTML correspondant à des caractères interdits en SGML, et non les tags. EDIT : je viens de comprendre ton commentaire Amour, mais dans ce cas autant faire seulement un simple " html_entity_decode" et non un specialchars
Posté(e) le 31 mai 201114 a Pardon, j'ai dit une bêtise : si jamais ça vient d'un fichier texte, et qu'il y a juste quelques <br /> ici et là, on peut même enlever la ligne : $texte = html_entity_decode(htmlspecialchars_decode($texte));
Posté(e) le 31 mai 201114 a Auteur Bonjour, j'ai résolu le problème en mettant tout simplement : $texte = str_replace("<br />", "", $texte); Mais je suis incapable d'expliquer pourquoi sa marche...
Posté(e) le 31 mai 201114 a La fonction a utilisé est nl2br() La avec $texte = str_replace("<br />", "", $texte); Tu ne fais que remplacer tout les "<br />" par rien (tu les supprime).
Posté(e) le 31 mai 201114 a Documentation de nl2br() Retourne string après avoir inséré "<br />" ou '<br>' devant toutes les nouvelles lignes (\r\n, \n\r, \n et \r). Si je ne trompe pas \r -> mac, \n -> unix/ linux, \r\n -> Windows (qui a pris le meilleur des 2 mondes ... ou pas ), mais \n\r Édit: \n\r, c'est fait pour les personnes qui écrivent de droite à gauche
Posté(e) le 3 juin 201114 a Auteur La fonction a utilisé est nl2br() La avec $texte = str_replace("<br />", "", $texte); Tu ne fais que remplacer tout les "<br />" par rien (tu les supprime). Justement, comment expliquer qu'en remplaçant "<br />" par rien je me retrouve avec bon nombre de retour à la ligne? (et non le double)
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.