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
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.
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 ;
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é).
PHP génère du HTML. Vous voudrez peut-être:
echo "foo";
echo "<br />\n";
echo "bar";
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
En supposant que vous visualisiez la sortie dans un navigateur Web, vous avez au moins deux options:
Entourez votre bloc de texte avec les instructions <pre>
Changez votre \n
en une balise HTML <br>
(<br/>
fera également l'affaire)
Nous pouvons utiliser\n comme une nouvelle ligne en php.
<?php
echo"Fo\n";
echo"Pro";
?>
Sortie:
Fo
Pro
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
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 />
.
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 :)
Cliquez ici pour afficher votre opinion sur cet article
echo "foo
bar";
Знаю, что похоже, что это упаковка. То не. То, что я сделал, я буквально ударилreturnна полпути через строку, между foo
et bar
. Он создает нову строку в исходном HTML и делает ваш PHP ужасным. Cliquez ici pour afficher Linux/Apache.
echo "foo<br />bar";
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/>
Nous pouvons appliquer \n
en php en utilisant deux types
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
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.