Удалить завершающую новую строку


У меня есть база данных MySQL, из которой я извлекаю строку, представляющую собой список слов, разделенных новой строкой. Теперь я хочу удалить только завершающую новую строку. Я попытался использовать preg_replace как

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

Это работает, но все новые строки в строках удаляются:( Пожалуйста, помогите

Спасибо всем.

Author: codaddict, 2010-08-20

2 answers

Вам нужно добавить якорь конца строки:

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

Лучше, чтобы избегайте регулярное выражение для такой простой замены. Это можно легко сделать с помощью ртрим как:

$string = rtrim($string);

rtrim без 2-го аргумента будет удален завершающий символ whitespace, который включает:

  • новая строка
  • пространство
  • вертикальная вкладка
  • горизонтальная вкладка
  • возврат каретки
 32
Author: codaddict, 2010-08-20 10:42:08

Не используйте регулярные выражения для такой тривиальной задачи. Вы можете использовать PHP rtrim() ( возможно, с "\n" в качестве второго параметра) или substr() ( как substr($string, 0, -1)) или MYSQL RTRIM().

 7
Author: soulmerge, 2010-08-20 10:47:04