Maison  >  Article  >  développement back-end  >  Pourquoi mes caractères de nouvelle ligne ne sont-ils pas convertis en balises de saut HTML ?

Pourquoi mes caractères de nouvelle ligne ne sont-ils pas convertis en balises de saut HTML ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 20:18:02890parcourir

Why Are My Newline Characters Not Converting to HTML Break Tags?

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

  1. preg_replace() :

    <code class="php">$description = preg_replace('/\r?\n|\r/', '<br/>', $description);</code>
  2. str_replace():

    <code class="php">$description = str_replace(array("\r\n", "\r", "\n"), '<br/>', $description);</code>
  3. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn