Remove trailing newline

mathewraj7786 picture mathewraj7786 · Aug 20, 2010 · Viewed 18.4k times · Source

I've a MySQL database from which I extract a string which is a list of words separated by newline. Now I want to remove only the trailing newline.

I tried using preg_replace as

$string = preg_replace('/\n/','',$string);

It works, but all the newlines in the strings are removed :(

How can I do this?

Answer

codaddict picture codaddict · Aug 20, 2010

You need to add the end of line anchor:

$string = preg_replace('/\n$/','',$string);

It's better to avoid regular expressions for such a simple substitution. This can easily be done using rtrim as:

$string = rtrim($string);

rtrim without the second argument will remove the trailing whitespace characters which include:

  • newline
  • space
  • vertical tab
  • horizontal tab
  • carriage return