Простой вопрос...
Я видел, что люди говорят мне использовать «\r\n» в различных местах, и другие говорят мне использовать «\n» в том же месте. Я уверен, что правильный, и каждый неправ. Пример - проектируя почту () заголовки:
Учебный № 1:
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
Учебный № 2 (замечают аргумент заголовка):
mail($to, $subject, $body,
"From: " . $from . "\n" .
"bcc: " . $bcc . "\n" .
"MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative;\n" .
" boundary=" . $mime_boundary_header)
Я смущен, но ясно это имеет своего рода значение, потому что с одним, мои удары головой работали, и с другим они только иногда работают.
\ R \ N - конец линейных символов для систем Windows.
\ N - конец линейного символа для систем UNIX.
Эти символы невидимы. С моего собственного опыта \ N обычно в порядке для Windows.
Некоторые предпочитают использовать PHP_EOOL Константу вместо этих символов для переносимости между платформами.
echo 'hi' . PHP_EOL;
echo "hi\n";
$headers = "From: webmaster@example.com" . PHP_EOL
. "Reply-To: webmaster@example.com";
В дополнение к ответу YADA, вот поясняется запись в блоге: https://blog.codinghorror.com/the-great-newine-schism/
[Обновление 2017-05-24: Исправлена ссылка]
Согласно RFC 821 (протокол SMTP), окончания строк всегда должны быть \r\n
(
) в почтовых заголовках и содержимом, но на практике это не должно иметь значения, так как большинство почтовых серверов корректно обрабатывают все три типа окончаний строк (предположительно, некоторые старые, основанные на UNIX, на самом деле подавились \r\n
, но не \n
).