Удалить конечную новую строку
У меня есть база данных MySQL, из которой я извлекаю строку, представляющую собой список слов, разделенных новой строкой. Теперь я хочу удалить только завершающий перевод строки.
Я пытался использовать preg_replace в качестве
$string = preg_replace('/\n/','',$string);
Это работает, но все новые строки в строках удалены :(
Как я могу это сделать?
Ответы
Ответ 1
Вам нужно добавить конец строки привязки:
$string = preg_replace('/\n$/','',$string);
Лучше избегать регулярных выражений для такой простой подстановки. Это легко сделать с помощью rtrim:
$string = rtrim($string);
rtrim
без второго аргумента удалит завершающие пробельные символы, которые включают в себя:
- новая линия
- пространство
- вертикальная вкладка
- горизонтальная вкладка
- возврат каретки
Ответ 2
Не используйте регулярные выражения для такой тривиальной задачи. Вы можете использовать PHP rtrim()
(возможно, с "\n"
в качестве второго параметра) или substr()
(например, substr($string, 0, -1)
) или MySQL RTRIM()
.