Удалить завершающий перевод строки - PullRequest
17 голосов
/ 20 августа 2010

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

Я пытался использовать preg_replace как

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

Это работает, но все новые строки в строках удалены: (

Как я могу это сделать?

Ответы [ 2 ]

37 голосов
/ 20 августа 2010

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

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

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

$string = rtrim($string);

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

  • перевод строки
  • пространство
  • вертикальная вкладка
  • горизонтальная вкладка
  • возврат каретки
10 голосов
/ 20 августа 2010

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

...