Maison > Article > développement back-end > Pourquoi mes caractères de nouvelle ligne ne sont-ils pas convertis en balises de saut HTML ?
Conservation des caractères de nouvelle ligne avec HTML
Dans le but de convertir les nouvelles lignes ou les caractères "rn" en balises de saut HTML ("
"), un utilisateur a rencontré des difficultés malgré l'utilisation de diverses méthodes.
Exploration de la méthode
preg_replace() :
<code class="php">$description = preg_replace('/\r?\n|\r/', '<br/>', $description);</code>
str_replace():
<code class="php">$description = str_replace(array("\r\n", "\r", "\n"), '<br/>', $description);</code>
nl2br():
<code class="php">$description = nl2br($description);</code>
Résultats inattendus
Malgré ces méthodes plausibles, les nouvelles lignes sont restées dans le texte. La raison réside dans la présence inattendue de doubles sauts de ligne ("rr"). Bien que cela ne devrait pas gêner le remplacement, cela justifiait une enquête plus approfondie.
Fonction nl2br()
Il est important de noter l'existence de la nl2br() Fonction , qui insère explicitement les balises "
" avant les caractères de nouvelle ligne.
<code class="php"><?php // Won't work $desc = 'Line one\nline two'; // Should work $desc2 = "Line one\nline two"; echo nl2br($desc); echo '<br/>'; echo nl2br($desc2); ?></code>
Texte entre guillemets doubles
De plus, une attention particulière doit être payé à l'utilisation de guillemets doubles lors de l'attribution du texte à la variable.
<code class="php">$description = "Line one\nline two"; // Correct $description = 'Line one\nline two'; // Incorrect</code>
En effet, les guillemets simples ne « développent » pas les séquences d'échappement, telles que « n », ce qui est crucial pour interpréter de nouveaux caractères de ligne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!