PHP différence entre \r\n and \n
Question Simple...
J'ai vu des gens me dire "\r\n" dans divers endroits, et d'autres me disent utiliser "\n" dans le même endroit. Je suis sûr que l'un est bon et l'on a tort. Exemple - lors de la conception de mail() en-têtes:
Tutoriel #1:
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: [email protected]\r\nReply-To: [email protected]";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
Tutoriel #2 (avis de l'argument en-tête):
mail($to, $subject, $body,
"From: " . $from . "\n" .
"bcc: " . $bcc . "\n" .
"MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative;\n" .
" boundary=" . $mime_boundary_header)
Je suis confus, mais à l'évidence cela fait peu de différence, parce que avec un, de mes en-têtes travaillé, et avec l'autre, ils ne parfois travail.
Le problème ici est à la fois peut être potentilly correcte. Il alldepneds sur ce que vous faites avec les cordes. Tut 1: Vous êtes en création de chaînes de caractères (ne rien faire avec eux). Tut 2: Vous êtes le passage des chaînes à une fonction "mail()". Si dans Tut 1: vous vous en tenez à ces directement sur une prise, il peut (comme il semble conforme à la RFC 821) mais vous êtes vers le bas et sale dans les détails de mise en œuvre. En Tut 2: cela dépend de ce que la documentation de mail() dit que c'est le bon moyen pour envoyer de la chaîne. En interne, il peut être convertir le texte pour vous.
OriginalL'auteur johnnietheblack | 2010-01-22
Vous devez vous connecter pour publier un commentaire.
\r\n caractères de fin de ligne pour les systèmes Windows.
\n est le caractère de fin de ligne pour les systèmes UNIX.
Ces caractères sont invisibles. De ma propre expérience, \n est généralement d'accord pour Windows.
Certains préfèrent utiliser PHP_EOL constante à la place de ces personnages pour la portabilité entre les plates-formes.
Il ne devrait pas. Suffit d'utiliser \n. De ma propre expérience, la plupart des applications Windows accept \n de fin de ligne. $headers = "From: [email protected]".PHP_EOL."Répondre À: [email protected]"; serait le plus sûr de code
C'est la mauvaise réponse. En-têtes de courriel DOIVENT être séparés par des \r\n.
evert...la question n'était pas sur les en-têtes de messages...c'était juste un exemple. je voulais savoir ce que \r et \n est. MAIS...après le changement de mon en-têtes de courriel \n il semblait fonctionner encore mieux. pouvez-vous me diriger dans la direction d'un bon tutoriel pour qui?
Cette réponse est correcte, mais pas la bonne réponse à la question. Cette réponse traite avec plate-forme spécifique EOL séquence pour les fichiers stockés dans le système de fichiers. La question est sur les caractères nécessaires à l'utilisation d'un protocole. Dans ce cas, le protocole de messagerie RFC 821. Ce qui indique clairement que vous devez utiliser "<CR><FL>" => "\r\n";
OriginalL'auteur Yada
Comme par RFC 821 (le protocole SMTP), les fins de ligne doit toujours être
\r\n
(<CR><LF>
) dans les en-têtes de messages et leur contenu, mais dans la pratique, il ne devrait pas, comme la plupart des serveurs de messagerie gérer tous les trois type de fin de ligne correctement (soi-disant, quelques vieux UNIX qui s'étouffer\r\n
mais pas\n
).c'est probablement à cause, vous utilisez des barres obliques au lieu de barres obliques inverses.
OriginalL'auteur Max Shawabkeh
En plus de Yada réponse, voici un expliquant l'entrée de blog: https://blog.codinghorror.com/the-great-newline-schism/
[Mise à jour 2017-05-24: correction du lien]
maintenant, le lien de redirection vers une autre page s'il vous plaît vérifier
merci, fixe.
OriginalL'auteur Dominik Sandjaja