Как удалить новые строки и вернуться из строки php?

Переменная 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>

Я пробовал следующее без успеха:

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

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

Ответ 1

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

Вам нужно:

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

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

$str = str_replace(PHP_EOL, '', $str);

Ответ 2

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

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

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

  • \n linefeed (LF или 0x0A (10) в ASCII)

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

  • (...)

Ответ 3

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

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

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

Ответ 4

Это должно быть как

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

Ответ 5

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

$newstring = preg_replace("/[\n\r]/","",$subject); 

Ответ 6

Корректный вывод:

'{"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' 
        )
    );
}

Ответ 7

$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));

Ответ 8

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

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

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

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