Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP difference between \r\n and \n

Tags:

syntax

php

Simple question...

I have seen people tell me to use "\r\n" in various places and others tell me to use "\n" in the same place. I'm sure one is right and one is wrong. Example - when designing mail() headers:

Tutorial #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."\""; 

Tutorial #2 (notice the header argument):

mail($to, $subject, $body, 
    "From: " . $from . "\n" . 
    "bcc: " . $bcc . "\n" . 
    "MIME-Version: 1.0\n" . 
    "Content-Type: multipart/alternative;\n" . 
    "     boundary=" . $mime_boundary_header)

I am confused, but clearly it makes somewhat of a difference, because with one, my headers worked, and with the other they only sometimes work.

like image 460
johnnietheblack Avatar asked Jan 22 '10 06:01

johnnietheblack


1 Answers

\r\n are end of line characters for Windows systems.

\n is the end of line character for UNIX systems.

These characters are invisible. From my own experience \n is usually okay for Windows as well.

Some prefer to use PHP_EOL constant instead of these characters for portability between platforms.

echo 'hi' . PHP_EOL;
echo "hi\n";

$headers = "From: [email protected]" . PHP_EOL 
           . "Reply-To: [email protected]"; 
like image 65
Yada Avatar answered Sep 22 '22 04:09

Yada