Разница PHP между \ r \ n и \ n

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

Я видел, как люди говорили мне использовать «\ r \ n» в разных местах, а другие говорят мне использовать «\ n» в том же месте. Я уверен, что человек прав, а один ошибается. Пример – при создании заголовков mail ():

Учебное пособие № 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) 

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

Related of "Разница PHP между \ r \ n и \ n"

\ r \ n – символы конца строки для систем Windows.

\ n – символ конца строки для UNIX-систем.

Эти символы невидимы. Из моего собственного опыта \ n обычно подходит для Windows.

Некоторые предпочитают использовать константу PHP_EOL вместо этих символов для переносимости между платформами.

 echo 'hi' . PHP_EOL; echo "hi\n"; $headers = "From: webmaster@example.com" . PHP_EOL . "Reply-To: webmaster@example.com"; 

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

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

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