dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

number_format> <nl_langinfo
[edit] Last updated: Fri, 28 Jun 2013

view this page in

nl2br

(PHP 4, PHP 5)

nl2brInserts HTML line breaks before all newlines in a string

Description

string nl2br ( string $string [, bool $is_xhtml = true ] )

Returns string with '<br />' or '<br>' inserted before all newlines (\r\n, \n\r, \n and \r).

Parameters

string

The input string.

is_xhtml

Whether to use XHTML compatible line breaks or not.

Return Values

Returns the altered string.

Examples

Example #1 Using nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

The above example will output:

foo isn't<br />
 bar

Example #2 Generating valid HTML markup using the is_xhtml parameter

<?php
echo nl2br("Welcome\r\nThis is my HTML document"false);
?>

The above example will output:

Welcome<br>
This is my HTML document

Example #3 Various newline separators

<?php
$string 
"This\r\nis\n\ra\nstring\r";
echo 
nl2br($string);
?>

The above example will output:

This<br />
is<br />
a<br />
string<br />

Changelog

Version Description
5.3.0 Added the optional is_xhtml parameter.
4.0.5 nl2br() is now XHTML compliant. All older versions will return string with '<br>' inserted before newlines instead of '<br />'.

See Also

  • htmlspecialchars() - Convert special characters to HTML entities
  • htmlentities() - Convert all applicable characters to HTML entities
  • wordwrap() - Wraps a string to a given number of characters
  • str_replace() - Replace all occurrences of the search string with the replacement string



number_format> <nl_langinfo
[edit] Last updated: Fri, 28 Jun 2013
 
add a note add a note User Contributed Notes nl2br - [9 notes]
up
4
blacknine313 at gmail dot com
5 years ago
After a recent post at the forums on Dev Shed, I noticed that it isn't mentioned, so I will mention it.

nl2br returns pure HTML, so it should be after PHP anti-HTML functions ( such as strip_tags and htmlspecialchars ).
up
3
j dot mons54 at gmail dot com
1 year ago
for bbcode :

<?php
$message
nl2br(preg_replace('#(\\]{1})(\\s?)\\n#Usi', ']', stripslashes($message)));
?>
up
1
ngkongs at gmail dot com
6 years ago
to replace all linebreaks to <br />
the best solution (IMO) is:

<?php
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return
$string;
}
?>

because each OS have different ASCII chars for linebreak:
windows = \r\n
unix = \n
mac = \r

works perfect for me
up
1
CGameProgrammer at gmail dot com
8 years ago
It's important to remember that this function does NOT replace newlines with <br> tags. Rather, it inserts a <br> tag before each newline, but it still preserves the newlines themselves! This caused problems for me regarding a function I was writing -- I forgot the newlines were still being preserved.

If you don't want newlines, do:

<?php
$Result
= str_replace( "\n", '<br />', $Text );
?>
up
3
Anders Norrbring
7 years ago
Seeing all these suggestions on a br2nl function, I can also see that neither would work with a sloppy written html line break.. Users can't be trusted to write good code, we know that, and mixing case isn't too uncommon.

I think this little snippet would do most tricks, both XHTML style and HTML, even mixed case like <Br> <bR /> and even <br            > or <br     />.

<?php
function br2nl($text)
{
    return 
preg_replace('/<br\\s*?\/??>/i', '', $text);
}
?>
up
2
N/A
4 years ago
Here's a more simple one:

<?php
/**
 * Convert BR tags to nl
 *
 * @param string The string to convert
 * @return string The converted string
 */
function br2nl($string)
{
    return
preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
}
?>

Enjoy
up
-1
mail at fort-hub dot com
2 years ago
I noticed that I am using an earlier version of PHP which does not recognise the $xhtml parameter in nl2br(), therefore I am stuck with xhtml line breaks, which I do not want. Thus I made the following simple function:

<?php

   
function NlToBr($inString)
    {
        return
preg_replace("%\n%", "<br>", $inString);
    }

?>
up
0
Joshua Anderson
3 years ago
This function will change new lines (line breaks) to <br/> and it allows you to limit the amount of brs allowed at any point in time.

This function was made to avoid people spaming a textarea with hundreds of line breaks or empty lines.

<?php
function nl2br_limit($string, $num){
   
$dirty = preg_replace('/\r/', '', $string);
$clean = preg_replace('/\n{4,}/', str_repeat('<br/>', $num), preg_replace('/\r/', '', $dirty));
   
return
nl2br($clean);
}

echo
nl2br_limit($string,'4');
?>

// Heres how it works //

nl2br_limit($string, $num)
// $string is the entered text you want to strip lines out of, it could be ($_POST['myinput'])
// $num is the amount of consecutive <br/>'s that are allowed any at a time.

The user is allowed to enter as many line breaks as $num allows
up
0
hyponiq at gmail dot com
5 years ago
On the contrary, <b>mark at dreamjunky.comno-spam</b>, this function is rightfully named.  Allow me to explain.  Although it does re-add the line break, it does so in an attempt to stay standards-compliant with the W3C recommendations for code format.

According to said recommendations, a new line character must follow a line break tag.  In this situation, the new line is not removed, but a break tag is added for proper browser display where a paragraph isn't necessary or wanted.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites