Remove trailing newline

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?

17
задан Peter Mortensen 4 July 2019 в 00:18
поделиться

2 ответа

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

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

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

$string = rtrim($string);

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

  • новую строку
  • пробел
  • вертикальную табуляцию
  • горизонтальный язычок
  • возврат каретки
38
ответ дан 30 November 2019 в 10:49
поделиться

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

10
ответ дан 30 November 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: