Comment ajouter un saut de ligne dans l'écho en PHP? [fermé]

92

J'essayais d'ajouter un saut de ligne pour une phrase, et j'ai ajouté le /n code suivant.

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

Pour certaines raisons, j'ai eu une erreur de serveur en conséquence. Comment je le répare?

jumax
la source
4
utilisez une barre oblique inverse, ce n'est pas un caractère correctement échappé \n. Mais l'erreur du serveur n'est pas liée à cet essai, regardez dans le journal apache et vérifiez __(arg)docu
Marek Sebera
1
Bienvenue dans Stackoverflow. Veuillez suivre les conseils de demande dont vous aviez besoin pour confirmer avant de publier une question. Gardez à l'esprit que vous seul voulez quelque chose et que vous vous demandez comment il est programmé ne peut pas être considéré comme une question de programmation en soi.
hakre

Réponses:

255

\nest un saut de ligne. /nn'est pas.


utilisation de \navec

1. écho directement à la page

Maintenant, si vous essayez de faire écho à la chaîne sur la page:

echo  "kings \n garden";

la sortie sera:

kings garden

vous n'obtiendrez pas gardende nouvelle ligne car PHP est un langage côté serveur et que vous envoyez la sortie au format HTML, vous devez créer des sauts de ligne en HTML. HTML ne comprend pas \n. Vous devez utiliser la nl2br()fonction pour cela.

Ce qu'il fait c'est:

Renvoie une chaîne avec <br />ou <br>insérée avant toutes les nouvelles lignes (\ r \ n, \ n \ r, \ n et \ r).

echo  nl2br ("kings \n garden");

Production

kings
garden

Remarque Assurez-vous que vous faites un écho / imprimez \nentre guillemets, sinon il sera rendu littéralement comme \ n. parce que l'interpréteur php analyse la chaîne en guillemets simples avec le concept tel quel

so "\n" not '\n'

2. écrire dans un fichier texte

Maintenant, si vous effectuez un écho dans un fichier texte, vous pouvez utiliser juste \net il fera écho à une nouvelle ligne, comme:

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

la sortie sera:

kings
 garden
NullPoiиteя
la source
1
En expliquant ce qui précède. Cela fonctionne - exemple -> echo "<html>". "\ N"; ou echo "jardin des rois". "\ n"; qui ajoute un saut de ligne après la première ligne. Google m'a conduit ici lorsque je voulais ajouter des sauts de ligne après l'écho.
MarcoZen
18

Vous devez utiliser br lorsque vous utilisez echo, comme ceci:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

et cela fonctionnera correctement

Maryam Homayouni
la source
1
Cela ne fonctionnera pas pour les documents html
MarcoZen
1
Cela ne fonctionnera pas lorsque vous les faites écho dans un fichier de langue côté php / serveur
MarcoZen
13

Le caractère de nouvelle ligne est \n, comme ceci:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');
noetix
la source
Quel est le préfixe __(deux traits de soulignement)?
Peter Mortensen
1
@PeterMortensen C'est une fonction dans certains frameworks PHP pour prendre en charge l'internationalisation. Le message d'origine l'a utilisé, c'est pourquoi je l'ai ajouté à ma réponse.
noetix
2

Vous pouvez essayer \ r \ n pour le retour chariot / saut de ligne

Jonathan
la source
Le problème semble être la barre oblique, /nvs \n.
Peter Mortensen