PHP des sauts de ligne (\n) ne fonctionne Pas
Pour une raison que je ne peux pas utiliser \n
pour créer un saut de ligne lors de la sortie à un fichier avec PHP. Il a juste écrit "\n
" dans le fichier. J'ai essayé d'utiliser "\\n
", où il écrit simplement "\n" (comme prévu). Mais je ne peux pas pour la vie de me comprendre pourquoi ajouter \n à mes chaînes de caractères n'est pas la création de nouvelles lignes. J'ai aussi essayé de \r\n
mais il ajoute "\r\n
" à la ligne dans le fichier.
Exemple:
error_log('test\n', 3, 'error.log');
error_log('test2\n', 3, 'error.log');
Sorties:
test\ntest2\n
En utilisant MAMP sur mac OSX en cas de questions (une sorte de config PHP chose peut-être?).
Des suggestions?
Vous devez vous connecter pour publier un commentaire.
D'utiliser des guillemets.
"test\n"
fonctionnent très bien (Ou alors, utilisez'test' . PHP_EOL
).http://php.net/manual/en/language.types.string.php
\n
n'est pas destiné à être vu comme une nouvelle ligne d'ici la fin de l'utilisateur, vous devez utiliser le code html<br/>
élément./n seulement affecte la façon dont le html qui est généré par php apparaît dans le code source de la page web. si vous allez à votre page web et cliquez sur "afficher la source", vous verrez php-html généré comme une longue ligne. Pas assez. C'est ce que
\n
est pour ; de briser le php html générée en lignes plus courtes. Le but de\n
est de faire un joli "afficher la source" de la page.Lorsque vous exécutez un script PHP dans un navigateur, il sera rendu au format HTML par défaut. Si les livres que vous avez à l'aide de preuve à l'effet contraire, soit le code ou l'illustration est inexacte. Vous pouvez utiliser le bouton “afficher la source” pour voir ce qui a été envoyé au navigateur et vous verrez que votre ligne de flux sont présents.
Cela rendra dans votre navigateur:
Si vous avez besoin d'envoyer du texte brut à votre navigateur, vous pouvez utiliser quelque chose comme:
Ce sera de sortie:
Je suis assez sûr que vous êtes de la sortie à un fichier html.
Le problème est html ignore les sauts de ligne dans la source ce qui signifie que vous devez remplacer les retours à la ligne avec
<br/>
si vous voulez un retour à la ligne dans le résultat de l'affichage de la page.nl2br()
fonction utiliser pour créer de nouveaux ligneL'exemple ci-dessus va afficher:
Bienvenue
C'est mon document HTML
Vous devez utiliser des guillemets. Les guillemets doubles ont plus échapper les caractères.
C'est parce que vous utilisez des apostrophes ('). Utilisation quotationmarks (") à la place. ' invites PHP pour utiliser tout ce qui est entre les apostrophes littéralement.
Les guillemets sont ce que vous voulez. Les guillemets simples ignorer la
\
échapper. Guillemets doubles également évaluer les expressions variables pour vous.Vérifier cette page dans le manuel php pour plus d'.
à la place de la
\n
avec des guillemets, essayezSi vous souhaitez imprimer quelque chose comme ceci avec un saut de ligne (\n) après:
À imprimer ci-dessus, vous devriez faire ceci:
Le code du client à partir de ci-dessus serait:
La sortie à partir de ci-dessus serait:
Ont-ils mangé?
Je sais que c'est dur, mais je toujours faire de cette façon, et vous presque toujours avoir à le faire de cette façon.
Parfois, vous voulez PHP pour l'impression \n à la page, au lieu de donner un retour à la ligne, comme dans le code JavaScript (généré par PHP).
NOTE à propos de la réponse: Vous pourriez peut-être: Pourquoi avez-vous utilisé d'impression au lieu de echo (j'aime mon écho). C'est parce que je préfère imprimer plus d'écho et de printf, car il fonctionne mieux dans certains cas (mon cas), mais il peut être fait très bien avec de l'écho dans ce cas.