Code Snippets


PHP Function to Convert LineBreaks to NewLines

June 15th, 2007

While PHP has a very nice little function (nl2br) to convert newlines (\n) to line breaks (<br>), moving in the opposite direction is not quite so easy. This function should hopefully help to allow you to convert line breaks to new lines.

<?php
 
/* This function will convert line breaks or other tags passed in the $tags variable to linebreaks.  Multiple $tags must be separated by spaces, and must consist of the regular tag text.  Ie. $result = br2nl($text_to_filter, "br p blockquote") */
function br2nl($text, $tags = "br")
{
  $tags = explode(" ", $tags);
 
  foreach($tags as $tag)
  {
    $text = eregi_replace("<" . $tag . "[^>]*>", "\n", $text);
    $text = eregi_replace("</" . $tag . "[^>]*>", "\n", $text);
  }
 
  return($text);
}
 
// Usage:
    $text_to_filter = "<p>This is my <br>sample<br>text.  The default code listed here should replace the br's with new lines.</p><p>The second example is more advanced, stripping out both the BR's as well as the P tags.</p>";
 
    // Example of replacing BR tags (default)
    $result = br2nl($text_to_filter);
    echo "<pre>$result</pre>";
 
    // Example of replacing both BR and P tags
    $result = br2nl($text_to_filter, "br p");
    echo "<pre>$result</pre>";
 
?>