Gouketsu Posté(e) le 30 mai 2011 Posté(e) le 30 mai 2011 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
Amour Posté(e) le 30 mai 2011 Posté(e) le 30 mai 2011 Pourquoi pas uniquement htmlspecialchars_decode ?
Yangzebul Posté(e) le 31 mai 2011 Posté(e) le 31 mai 2011 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
Amour Posté(e) le 31 mai 2011 Posté(e) le 31 mai 2011 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));
Gouketsu Posté(e) le 31 mai 2011 Auteur Posté(e) le 31 mai 2011 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...
Shhu Posté(e) le 31 mai 2011 Posté(e) le 31 mai 2011 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).
foetus Posté(e) le 31 mai 2011 Posté(e) le 31 mai 2011 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
Gouketsu Posté(e) le 3 juin 2011 Auteur Posté(e) le 3 juin 2011 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)
nemesis93_75 Posté(e) le 3 juin 2011 Posté(e) le 3 juin 2011 Tu as du faire des retours à la ligne dans ton texte.txt
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.