PHP nouveau saut de ligne dans les e-mails
J'ai le code suivant:
$message = "Good news! The item# $item_number on which you placed a bid of $ $bid_price is now available for purchase at your bid price.\n
The seller, $bid_user is making this offer.\n
\nItem Title : $title\n
\nAll the best,\n
$bid_user\n
$email\n
";
echo $message;
$htmlContent = $baseClass->email_friend($item_number, $title, $bid_price, $bid_user, $mcat, $message, $email, $VIEWSTATE, $EVENTVALIDATION, $URL);
Le problème est que le nouveau saut de ligne (\n)
ne fonctionne pas.
- Qui n'est même pas une chaîne PHP. C'est juste du texte brut.
- montrons-nous plus de code de l'échantillon, et comment voulez-vous de sortie de cette? en HTML? Ensuite, il est clair pourquoi ils ne travaillent pas. si vous n'utilisez pas le
<pre>
étiquette de chaque espace (\n\r\t) sera ineterpreted comme un simple espace, et de multiples espaces blancs dans la succession sera interprété comme un - J'ai besoin d'envoyer ce texte à un message système qui ne supporte pas le html
- Le message de soutien du système de nouvelles lignes, et si oui, comment?
- Si le système s'attend à Gagner de style de ligne,
\n
ne fonctionne pas, vous devrez ajouter\r\n
pour que ça arrive
Vous devez vous connecter pour publier un commentaire.
Essayer
\r\n
en place de\n
La différence entre les \n et \r\n
Il convient de noter que ceci est applicable à la ligne revient dans les e-mails. Pour les autres scénarios, veuillez vous référer à rokjarc de réponse.
<pre>
tags les retours à la ligne sont également indiquées dans le code HTML.PHP_EOL
est la bonne solution ici - cette réponse est pour reproduire le contenu de l'email qui ne sera pas rendu sur la machine source produisant le caractère de fin de ligne. Par conséquent, en se basant hors de cette plate-forme est incorrecte. Comme Chris Williams a souligné ci-dessus, le RFC dicte qu'il doit être\r\n
. Essayez cette réponse: stackoverflow.com/questions/3248090/...Je sais que c'est une vieille question, mais de toute façon, ça pourrait aider quelqu'un.
J'ai tendance à utiliser
PHP_EOL
destinés à cet usage (en raison de la compatibilité de plate-forme).Si vous êtes planification pour afficher le résultat dans un navigateur, puis vous devez utiliser
"<br>"
.EDIT: depuis votre question est à propos des e-mails, les choses sont un peu différentes.
Pour le texte pur, des emails voir Brendan Bullen est accepté de répondre à. Pour les e-mails HTML
il vous suffit d'utiliser la mise en forme HTML.
Êtes-vous construire cette chaîne à l'aide de guillemets simples ou doubles? \r et \n travaillons uniquement avec des guillemets doubles, ainsi que des variables. Par exemple:
sera de sortie:
Mais:
sera de sortie:
Si vous la sortie au format html ou html, e-mail, vous aurez besoin d'utiliser
<br>
ou<br />
au lieu de\n
.Si c'est juste un texte e-mail: vous Êtes peut-être à l'aide de
'
au lieu de"
? Bien que vos valeurs ne serait pas être insérée...vous pouvez utiliser
"Line1<br>Line2"
EDIT: Peut-être que votre classe pour l'envoi de courriels a une option pour les e-mails HTML et ensuite vous pouvez utiliser <br />
1) guillemets
Si vous utilisez des guillemets doubles puis \n fonctionne (il n'y aura pas de saut de ligne dans le navigateur, mais voir le code source dans votre navigateur - le \n caractères seront remplacés par des retours à la ligne)
2) guillemets Simples n'a pas le même effet que les guillemets ci-dessus:
tous les caractères seront imprimés comme il est (même variables!)
3) les sauts de Ligne en HTML
si vous générez le code html modifier /n -->
et do echo $message;
Lorsque nous insérer saut de ligne avec un langage de programmation le char code est "\n". php n'est sortie qu'mais le html ne peut pas l'afficher qu'en raison de format html saut de ligne
. tellement facile de faire ce travail, c'est de remplacer tous les "\n" par "
". si le code doit être
après l'ajout de ce code, vous n'aurez pas à utiliser la balise pour la sortie oparation.
copyed cette sna à partir de ce site :