web-dev-qa-db-fra.com

Conversion de <br /> en une nouvelle ligne à utiliser dans une zone de texte

Si j'ai une variable:

$var1 = "Line 1 info blah blah <br /> Line 2 info blah blah";

Et une zone de texte:

<textarea>echo $var1</textarea>

Comment puis-je obtenir que la zone de texte affiche une nouvelle ligne au lieu d'afficher le texte sur un seul comme avec un <br />?

Edit: J'ai essayé les solutions suivantes:

<textarea class="hobbieTalk" id="hobbieTalk" name="hobbieTalk" cols="35" rows="5" onchange="contentHandler('userInterests',this.id,this.value,0)"><?php

$convert=$_SESSION["hobbieTalk"];
$convert = str_replace("<br />", "\n", $convert);
echo $convert;

?></textarea>

Toutefois, la zone de texte contient toujours les balises br dans les lignes.

37
someguy

Essaye celui-là

<?  
    $text = "Hello <br /> Hello again <br> Hello again again <br/> Goodbye <BR>";
    $breaks = array("<br />","<br>","<br/>");  
    $text = str_ireplace($breaks, "\r\n", $text);  
?>  
<textarea><? echo $text; ?></textarea>
72
Mobilpadde

je suis utiliser suite à la construction pour reconvertir nl2br

function br2nl( $input ) {
    return preg_replace('/<br\s?\/?>/ius', "\n", str_replace("\n","",str_replace("\r","", htmlspecialchars_decode($input))));
}

ici, j'ai remplacé les symboles \n et \r à partir de $ input car nl2br ne les supprime pas et cela provoque une sortie incorrecte avec \n\n ou \r<br>.

12
aftamat4ik

Voici une autre approche.

class orbisius_custom_string {
    /**
     * The reverse of nl2br. Handles <br/> <br/> <br />
     * usage: orbisius_custom_string::br2nl('Your buffer goes here ...');
     * @param str $buff
     * @return str
     * @author Slavi Marinov | http://orbisius.com
     */
    public static function br2nl($buff = '') {
        $buff = preg_replace('#<br[/\s]*>#si', "\n", $buff);
        $buff = trim($buff);

        return $buff;
    }
}
1
Svetoslav Marinov

EDIT: la réponse précédente était en arrière de ce que vous vouliez. Utilisez str_replace . Remplacez <br> par\n

echo str_replace('<br>', "\n", $var1);
0
Crashspeeder
<?php

$var1 = "Line 1 info blah blah <br /> Line 2 info blah blah";
$var1 = str_replace("<br />", "\n", $var1);

?>

<textarea><?php echo $var1; ?></textarea>
0
Dan LaManna