Topic: PHP / MySQLPrev|Next
Answer: Use the Newline Characters '\n
' or '\r\n
'
You can use the PHP newline characters \n
or \r\n
to
create a new line inside the source code. However, if you want the line breaks to be visible in the browser too, you can use the PHP nl2br[]
function which inserts HTML line breaks before all newlines in a string.
Let's take a look at the following example to understand how it basically works:
Note: The character \n
writes a newline in UNIX
while for Windows there is the two character sequence: \r\n
. To be on safe side use the \r\n
instead.
Related FAQ
Here are some more FAQ related to this topic:
- How to combine two strings in PHP
- How to remove white space from a string in PHP
- How to write comments in PHP
To create a newline, PHP provides nl2br[] function. It is an in-built function of PHP, which is used to insert the HTML line breaks before all newlines in the string. Although, we can also use PHP newline character \n or \r\n inside the source code to create the newline, but these line breaks will not be visible on the browser. So, the nl2br[] is useful here.
The nl2br[] function contains these newline characters \n or \r\n which combinely create the newline. Apart from nl2br[] function, a html break line tag is used to break the string. The tag should be enclosed in double quotes, e.g., "".
For Example
To create the newline in PHP, let's see the number of examples.
Example 1
Let's take an of example to create the newline with the help of nl2br[] function.
Output
In this example, we can see that the nl2br[] function has contained "\n" and "\r\n" characters in the string for newline. We can see the result of the following program in the below output.
New line will start from here in this string on the browser window
Example 2
Output
In the above example, we can see that after "\n" or "\r\n" character, string did not start from the new line. "\n" and "\r\n" alone are not enough for creating a newline in the string, as the whole string is displayed in a single line.
One line after another line One line after another line
Note: The character "/n" is used in Linux to write a newline whereas in windows "\r\n" is used. For the safe side use the "\r\n" character for creating newline instead.
Example 3
Output
Here, we break the lines using html break line tag "".
One line after another line One line after another line
In PHP I am trying to create a newline character:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
Afterwards I open the created file in Notepad and it writes the newline literally:
1 John Doe\r\n 1 John Doe\r\n 1 John Doe\r\n
I have tried many variations of the \r\n
, but none work. Why isn't the newline turning
into a newline?
asked Nov 21, 2010 at 14:47
1
Only double quoted strings interpret the escape sequences \r
and \n
as '0x0D' and '0x0A' respectively, so you want:
"\r\n"
Single quoted strings, on the other hand,
only know the escape sequences \\
and \'
.
So unless you concatenate the single quoted string with a line break generated elsewhere [e. g., using double quoted string "\r\n"
or using chr
function chr[0x0D].chr[0x0A]
], the only other way to have a line break within a single quoted string is to literally type it with your editor:
$s = 'some text before the line break
some text after';
Make sure to check your editor for its line break settings if you require some
specific character sequence [\r\n
for example].
theonlygusti
9,4858 gold badges52 silver badges102 bronze badges
answered Nov 21, 2010 at 14:48
GumboGumbo
627k106 gold badges766 silver badges836 bronze badges
7
Use the predefined PHP_EOL
constant:
echo $clientid, ' ', $lastname, PHP_EOL;
The constant value will be set according to the line endings of the operating system where PHP is executing. On Linux, it will be "\n"
; on Windows, it will be "\r\n"
.
Dave Jarvis
29.9k38 gold badges176 silver badges306 bronze badges
answered Nov 21, 2010 at 14:50
nnevalannevala
5,5392 gold badges19 silver badges13 bronze badges
2
The browser will not parse linefeeds into two lines because a newline character in HTML means nothing. That's why when needs a new line in HTML, one has to add some tag,
being the simplest one:
echo [output text]."
\n";
This will output the HTML newline.
Note that it's a good idea to add a new line anyway, so you'll have readable HTML when checking the page source.
answered Dec 23, 2013 at 18:50
davea0511davea0511
1,3101 gold badge8 silver badges9 bronze badges
2
Use the constant PHP_EOL to get the right character no matter the platform.
//us3.php.net/manual/en/reserved.constants.php
A simple usage example:
ZygD
16.2k37 gold badges68 silver badges88 bronze badges
answered Jan 4, 2015 at 6:00
0
Strings between double quotes ""
interpolate, meaning they convert escaped characters to printable characters.
Strings between
single quotes ''
are literal, meaning they are treated exactly as the characters are typed in.
You can have both on the same line:
echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";
outputs:
$clientid $lastname
1 John Doe
answered Nov 21, 2012 at 20:07
Kevin S. MillerKevin S. Miller
8531 gold badge9 silver badges20 bronze badges
3
You should use this:
"\n"
You also might wanna have a look at PHP EOL.
answered Nov 21, 2010 at 14:49
Wouter DorgeloWouter Dorgelo
11.5k11 gold badges59 silver badges79 bronze badges
Actually \r\n
is for the html side of the output. With those chars you can just create a newline in the
html code to make it more readable:
echo "First line \r\n Second line";
will output:
First line
Second line
that viewing the page will be:
First line Second line
If you really meant this you have just to fix the single quote with the "" quote:
echo "\r\n";
Otherwise if you mean to split the text, in our sample 'First line' and 'Second line' you have to use the html code:
:
First line
Second line
that will output:
First line
Second line
Also it would be more readable if you replace the entire script with:
echo "$clientid $lastname \r\n";
Dirty-flow
2,27611 gold badges28 silver badges48 bronze badges
answered Nov 21, 2010 at 14:52
ShoeShoe
73.4k33 gold badges162 silver badges266 bronze badges
2
There is a handy PHP function for HTML output that adds a
tag to new lines:
echo nl2br["One line.\n Another line."];
answered Aug 16, 2015 at 10:26
2
Nothing was working for me.
PHP_EOL
. "\r\n";
$NEWLINE_RE = '/[\r\n]|\r|\n/'; // take care of all possible newline-encodings in input file
$var = preg_replace[$NEWLINE_RE,'', $var];
Works for me:
$admin_email_Body = $admin_mail_body .'
' ."\r\n";
$admin_email_Body .= 'This is line 2
' ."\r\n";
$admin_email_Body .= 'This is line 3
' ."\r\n";
answered Jan 4, 2020 at 4:34
3
For some reason, every single post asking about newline escapes in PHP fails to mention the case that simply inserting a newline into single-quoted strings will do exactly what you think:
ex 1.
echo 'foo\nbar';
Example 1 clearly does not print the desired result, however, while it is true you cannot escape a newline in single-quotes, you can have one:
ex 2.
echo 'foo
bar';
Example 2 has exactly the desired behavior. Unfortunately the newline that is inserted is operating system dependent. This usually isn't a problem, as web browsers/servers will correctly interpret the newline whether it is \r, \r\n, or \n.
Obviously this solution is not ideal if you plan to distribute the file through other means then a web browser and to multiple operating systems. In that case you should see one of the other answers.
note: using a feature rich text editor you should be able to insert a newline as a binary character[s] that represents a newline on a different operating system than the one editing the file. If all else fails, simply using a hex editor to insert the binary ascii character would do.
theonlygusti
9,4858 gold badges52 silver badges102 bronze badges
answered Jul 12, 2013 at 4:41
Use the PHP nl2br to get the newlines in a text string..
$text = "Manu is a good boy.[Enter]He can code well.
echo nl2br[$text];
Result.
Manu is a good boy.
He can code well.
answered Oct 29, 2013 at 19:02
Manu R SManu R S
7627 silver badges6 bronze badges
1
Use chr [13] for carriage return and chr [10] for new line
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr [13]. chr [10];
answered Jun 5, 2013 at 9:10
0
I have also tried this combination within both the single quotes and double quotes. But none has worked. Instead of using \n
better use
in the double quotes. Like this..
$variable = "and";
echo "part 1 $variable part 2
";
echo "part 1 ".$variable." part 2";
answered Apr 10, 2013 at 7:13
youeyeyoueye
6971 gold badge7 silver badges26 bronze badges
1
For any echo statements, I always use
inside double quotes.
answered Feb 15, 2017 at 20:13
matthewpark319matthewpark319
1,1111 gold badge13 silver badges16 bronze badges
1
You Can Try This.
answered Oct 29, 2019 at 16:12