如何从php字符串中删除新行和返回?

2022-08-30 11:05:39

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

您需要将 放在双引号中。
在单引号内,它被视为 2 个字符,后跟\n'\''n'

你需要:

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

更好的替代方法是用作:PHP_EOL

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

答案 2

您必须包装或包装,而不是 。使用单引号时,不会解释转义序列(和 除外)。\n\r""''\'\\

该手册指出

如果字符串括在双引号(“)中,PHP将为特殊字符解释更多转义序列:

  • \n 换行(LF 或 0x0A (10) 在 ASCII 中)

  • \r 回车符(CR 或 0x0D (13) 在 ASCII 中)\

  • (...)


推荐