Remove trailing newline

Don't use regular expressions for such a trivial task. You can use PHP's rtrim() (possibly with "\n" as the second parameter) or substr() (like substr($string, 0, -1)) or MySQL's RTRIM().


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