我的印象是,如果省略指定特定字符的第二个参数,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我尝试使用修剪的原因是因为我想在文本中间保留新行和格式,因为它可能会分成段落。我只是想修剪它的边缘。我错了,修剪应该删除字符串开头和结尾的换行符和新行吗?删除上述新行的正确方法是什么?
2 回答
![?](http://img1.sycdn.imooc.com/5458478b0001f01502200220-100-100.jpg)
慕婉清6462132
TA贡献1804条经验 获得超2个赞
将零长度空格字符 (\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) 可能是个好主意。
![?](http://img1.sycdn.imooc.com/54586653000151cd02200220-100-100.jpg)
守着一只汪
TA贡献1872条经验 获得超3个赞
警告!接受的答案不会删除零宽度空格。相反,它会删除单个字符\
, u
, 2
, 0
, b
。
如果有人想使用 删除字符串开头或结尾处的实际零宽度空格trim()
,这是正确的方法:
$trimmed = trim( $str, "\xE2\x80\x8B" // zero-width character );
- 2 回答
- 0 关注
- 125 浏览
添加回答
举报
0/150
提交
取消