web-dev-qa-db-fra.com

PHP: essayer de créer une nouvelle ligne avec "\ n"

j'écris ceci:

echo "foo";
echo "\n";
echo "bar";

et "bar" n'est pas écrit dans la ligne ci-dessous.

Qu'est-ce que je fais mal?

Javi

26
ziiweb

Les nouvelles lignes HTML sont exprimées par <br> et non par \n.

Utiliser \n dans PHP crée une nouvelle ligne dans le code source et la présentation du code source HTML n'est pas connectée à la présentation de l'écran HTML.

41
Tomalak

Si vous souhaitez insérer un nouveau caractère de ligne dans un flux de texte brut, vous pouvez utiliser le système PHP_EOL global indépendant du système d'exploitation.

echo "foo";
echo PHP_EOL ;
echo "bar";

En termes HTML, vous verriez une nouvelle ligne entre foo et bar si vous regardiez le code source de la page.

ergo, il est utile si vous sortez par exemple une boucle de valeurs pour une zone de sélection et que vous appréciez le code source HTML qui est "plus joli" ou plus facile à lire plus tard. par exemple.

foreach( $dogs as $dog )
echo "<option>$dog</option>" . PHP_EOL ;
19
Cups

Si vous souhaitez écrire du texte brut, vous devez vous assurer que le type de contenu est défini sur Content-Type: text/plain. Exemple:

header('Content-Type: text/plain');

Si vous utilisez HTML, vous avez deux options. L’une consiste à insérer une nouvelle ligne en utilisant <br> (ou <br /> pour XHTML). L'autre consiste à mettre le texte brut dans un élément <pre> (dans ce cas, "pré" signifie préformaté).

17
Yacoby

PHP génère du HTML. Vous voudrez peut-être: 

echo "foo";
echo "<br />\n";
echo "bar";
5
Daniel A. White

si votre texte contient des nouvelles lignes, utilisez la fonction nl2br php:

<?php
$string = "foo"."\n"."bar";
echo nl2br($string);
?>

Cela devrait bien paraître dans le navigateur

4
Andrei R

En supposant que vous visualisiez la sortie dans un navigateur Web, vous avez au moins deux options:

  1. Entourez votre bloc de texte avec les instructions <pre>

  2. Changez votre \n en une balise HTML <br> (<br/> fera également l'affaire)

3
Mark Elliot

Nous pouvons utiliser\n comme une nouvelle ligne en php.

Extrait de code :

 <?php
  echo"Fo\n";
  echo"Pro";
?>

Sortie: 

Fo
Pro

2
rashedcs

Comme cela n'a pas été mentionné, vous pouvez également utiliser la propriété CSS white-space

body{
    white-space:pre-wrap;
}

Ce qui indique au navigateur de conserver les espaces afin que

<body>
    <?php
        echo "hello\nthere";
    ?>
</body>

Afficherait

hello
there
2
Flau

Il sera écrit sur une nouvelle ligne si vous examinez le code source de la page. Si vous souhaitez qu'il apparaisse sur une nouvelle ligne lors de son rendu dans le navigateur, vous devrez utiliser une balise <br />.

1
Matt

Cela fonctionne parfaitement pour moi ...

echo nl2br("\n");

Référence: http://www.w3schools.com/php/func_string_nl2br.asp

J'espère que ça aide :)

1
Deep

Cliquez ici pour afficher votre opinion sur cet article

echo "foo
bar";

Знаю, что похоже, что это упаковка. То не. То, что я сделал, я буквально ударилreturnна полпути через строку, между foo et bar. Он создает нову строку в исходном HTML и делает ваш PHP ужасным. Cliquez ici pour afficher Linux/Apache.

1
eeyore
echo "foo<br />bar";
0
McNabbToSkins

la ligne de rupture d'élément html dépend de sa propriété de style white-space . dans la plupart des éléments, la valeur par défaut de white-space est auto, ce qui signifie une ligne de rupture lorsque le texte atteint la largeur de l'élément . si vous voulez le texte break par \n vous devez donner à l'élément parent le style: white space: pre-line, qui lira le \n et coupera la ligne, ou white-space: pre, qui lira également \t etc . note: écrire \n comme Si vous ne voulez pas utiliser d’espace blanc, vous pouvez toujours utiliser l’élément HTML pour la ligne de rupture , qui correspond à la ligne de séparation et non à une chaîne. Vous devez utiliser une chaîne entre guillemets ("\n") <br/>

0
Yosef Tukachinsky

Nous pouvons appliquer \n en php en utilisant deux types 

  1. Utiliser CSS 

    body {
        white-space: pre-wrap;
    }
    

    Ce qui indique au navigateur de conserver les espaces afin que

    <body>
        <?php
            echo "Fo\n Pro";
        ?>
    </body>
    

    Résultat:

    Fo
    Pro

  2. Utiliser nl2br

    nl2br: insère des sauts de ligne HTML avant tous les nouveaux traits d'une chaîne

    <?php
        echo nl2br("Fo.\nPro.");
    ?>
    

    Résultat 

    Fo. 
    Pro.

0
Amit Punia