как удалить новые строки и возврат из строки php? - PullRequest
36 голосов
/ 21 октября 2010

Переменная php содержит следующую строку:

<p>text</p>
<p>text2</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>

Я хочу удалить все символы новой строки в этой строке, чтобы строка выглядела следующим образом:

<p>text</p><p>text2><ul><li>item1</li><li>item2</li></ul>

Iбезуспешно пробовал следующее:

str_replace('\n', '', $str);
str_replace('\r', '', $str);
str_replace('\r\n\', '', $str);

Кто-нибудь знает, как это исправить?

Ответы [ 8 ]

88 голосов
/ 21 октября 2010

Вам необходимо поместить \n в двойные кавычки.
Внутри одинарных кавычек он обрабатывается как 2 символа '\', за которыми следует 'n'

Вам нужно:

$str = str_replace("\n", '', $str);

Лучшая альтернатива - использовать PHP_EOL как:

$str = str_replace(PHP_EOL, '', $str);
17 голосов
/ 21 октября 2010

Вы должны обернуть \n или \r в "", а не ''. При использовании одинарных кавычек escape-последовательности интерпретироваться не будут (кроме \' и \\).

В руководстве указано :

Если строка заключена в двойные кавычки ("), PHP будет интерпретировать больше escape-последовательностей для специальных символов:

  • \ n перевод строки (LF или 0x0A (10) в ASCII)

  • \ r возврат каретки (CR или 0x0D (13) в ASCII) \

  • (...)

8 голосов
/ 11 августа 2015

Что-то более функциональное (простое в использовании где угодно):

function replace_carriage_return($replace, $string)
{
    return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}

Использование PHP_EOL в качестве параметра замены поиска также является хорошей идеей!Престижность.

4 голосов
/ 03 июня 2015

Чтобы удалить новые строки из строки, следуйте приведенному ниже коду

$newstring = preg_replace("/[\n\r]/","",$subject); 
4 голосов
/ 21 октября 2010

Это должно быть похоже на

str_replace("\n", '', $str);
str_replace("\r", '', $str);
str_replace("\r\n", '', $str);
1 голос
/ 27 июня 2016

Правильный вывод:

'{"data":[{"id":"1","reason":"hello\\nworld"},{"id":"2","reason":"it\\nworks"}]}'

function json_entities( $data = null )
{           
    //stripslashes
    return str_replace( '\n',"\\"."\\n",
        htmlentities(
            utf8_encode( json_encode( $data)  ) , 
            ENT_QUOTES | ENT_IGNORE, 'UTF-8' 
        )
    );
}
0 голосов
/ 17 марта 2017

Заменить строку:

$str = str_replace("\n", '', $str);

Вы также используете, как, (% П, % Т, Все специальные символы, цифры, символы ,. и т.д.)

, что означает любую вещь, которую вы можете заменить в строке.

0 голосов
/ 05 мая 2015
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));
...