Essayer de remplacer simplement de nouvelles lignes. J'ai essayé 3 façons différentes et je n'ai aucun changement:
$description = preg_replace('/\r?\n|\r/','<br/>', $description);
$description = str_replace(array("\r\n","\r","\n"),"<br/>", $description);
$description = nl2br($description);
Celles-ci devraient toutes fonctionner mais je reçois toujours les nouvelles lignes. Ils sont doubles: "\ r\r". Cela ne devrait en aucun cas faire échouer tout cela?
Il existe déjà nl2br()
function remplace insère<br>
tags avant les nouveaux caractères de ligne:
Exemple ( codepad ):
<?php
// Won't work
$desc = 'Line one\nline two';
// Should work
$desc2 = "Line one\nline two";
echo nl2br($desc);
echo '<br/>';
echo nl2br($desc2);
?>
Mais si cela ne fonctionne toujours pas, assurez-vous que le texte $desciption
est cité entre guillemets.
En effet, les guillemets simples ne «développent» pas les séquences d'échappement telles que \n
en les comparant à des chaînes à guillemets. Citation de la documentation PHP:
Note: Contrairement aux syntaxes guillemet et heredoc, les variables et les séquences d'échappement pour les caractères spéciaux ne seront pas développées lorsqu'elles apparaîtront dans des chaînes entre guillemets simples.
Essayez d'utiliser ceci
$description = preg_replace("/\r\n|\r|\n/",'<br/>',$description);
Vous pouvez avoir de vrais caractères "\" dans la chaîne (les guillemets simples, comme dit @Robik).
Si vous êtes certain que les chaînes "\ r" ou "\ n" doivent également être remplacées, je ne parle pas de caractères spéciaux ici, mais d'une séquence de deux caractères "\" et "r", puis échappez le "\ 'dans la chaîne de remplacement et cela fonctionnera:
str_replace(array("\r\n","\r","\n","\\r","\\n","\\r\\n"),"<br/>",$description);
nl2br()
tel que vous l'avez devrait fonctionner correctement:
$description = nl2br($description);
Il est plus probable que le '
non fermé situé sur la première ligne de votre exemple de code soit à l'origine du problème Supprimer le 'après $ description ...
...$description');
nl2br () a travaillé pour moi, mais je devais envelopper les variables entre guillemets:
Cela marche:
$description = nl2br("$description");
Cela ne marche pas:
$description = nl2br($description);
Cela fonctionnera à coup sûr:
str_replace("\\r","<br />",$description);
str_replace("\\n","<br />",$description);
Essaye ça:
echo str_replace( array('\r\n','\n\r','\n','\r'), '<br>' , $description );
Je pense que str_replace (array ("\ r\n", "\ r", "\ n"), "", $ string); Marchera.
$description = nl2br(stripcslashes($description));