使用trim从php字符串的开头和结尾删除新行

我的印象是,如果省略指定特定字符的第二个参数,PHP 中的修剪命令不仅会删除空格,还会从字符串的开头(和结尾)删除新行。

此函数返回一个字符串,该字符串从 str 的开头和结尾删除了空格。如果没有第二个参数,trim() 将删除这些字符:

“”(ASCII 32 (0x20)),普通空格。“\t”(ASCII 9 (0x09)),制表符。“\n”(ASCII 10 (0x0A)),换行(换行)。“\r”(ASCII 13 (0x0D)),回车符。“\0”(ASCII 0 (0x00)),NUL 字节。“\x0B”(ASCII 11 (0x0B)),垂直制表符。

但是,我将其应用到一个字符串,该字符串在开头有一些因删除文本而产生的新行,并且留下以下内容:

\u200b\n\nTHE TEXT I WANT STARTS HERE. I WANT TO GET RID OF EVERTHING BEFORE WORD THE

我尝试使用修剪的原因是因为我想在文本中间保留新行和格式,因为它可能会分成段落。我只是想修剪它的边缘。

我错了,修剪应该删除字符串开头和结尾的换行符和新行吗?删除上述新行的正确方法是什么?


莫回无
浏览 176回答 2
2回答

慕婉清6462132

将零长度空格字符 (\u200b) 添加到要删除的字符列表中,然后它就会按您的预期工作。$ws = " \t\n\r\0\x0B\u200b";$s = trim( "\u200b\n\nTHE TEXT I WANT STARTS HERE. I WANT TO GET RID OF EVERTHING BEFORE WORD THE", $ws);echo $s;添加不间断空格字符 (\xA0) 可能是个好主意。

守着一只汪

警告!接受的答案不会删除零宽度空格。相反,它会删除单个字符\, u, 2, 0, b。如果有人想使用 删除字符串开头或结尾处的实际零宽度空格trim(),这是正确的方法:$trimmed = trim(     $str,         "\xE2\x80\x8B" // zero-width character );
打开App,查看更多内容
随时随地看视频慕课网APP