Различие PHP между \r\n и \n

Простой вопрос...

Я видел, что люди говорят мне использовать «\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)

Я смущен, но ясно это имеет своего рода значение, потому что с одним, мои удары головой работали, и с другим они только иногда работают.

17
задан johnnietheblack 22 January 2010 в 06:46
поделиться

3 ответа

\ 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"; 
23
ответ дан 30 November 2019 в 12:07
поделиться

В дополнение к ответу YADA, вот поясняется запись в блоге: https://blog.codinghorror.com/the-great-newine-schism/

[Обновление 2017-05-24: Исправлена ​​ссылка]

5
ответ дан 30 November 2019 в 12:07
поделиться

Согласно RFC 821 (протокол SMTP), окончания строк всегда должны быть \r\n () в почтовых заголовках и содержимом, но на практике это не должно иметь значения, так как большинство почтовых серверов корректно обрабатывают все три типа окончаний строк (предположительно, некоторые старые, основанные на UNIX, на самом деле подавились \r\n, но не \n).

6
ответ дан 30 November 2019 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: