我的印象是,如果省略指定特定字符的第二個參數(shù),PHP 中的修剪命令不僅會刪除空格,還會從字符串的開頭(和結(jié)尾)刪除新行。此函數(shù)返回一個字符串,該字符串從 str 的開頭和結(jié)尾刪除了空格。如果沒有第二個參數(shù),trim() 將刪除這些字符:“”(ASCII 32 (0x20)),普通空格。“\t”(ASCII 9 (0x09)),制表符。“\n”(ASCII 10 (0x0A)),換行(換行)。“\r”(ASCII 13 (0x0D)),回車符。“\0”(ASCII 0 (0x00)),NUL 字節(jié)。“\x0B”(ASCII 11 (0x0B)),垂直制表符。但是,我將其應(yīng)用到一個字符串,該字符串在開頭有一些因刪除文本而產(chǎn)生的新行,并且留下以下內(nèi)容:\u200b\n\nTHE?TEXT?I?WANT?STARTS?HERE.?I?WANT?TO?GET?RID?OF?EVERTHING?BEFORE?WORD?THE我嘗試使用修剪的原因是因?yàn)槲蚁朐谖谋局虚g保留新行和格式,因?yàn)樗赡軙殖啥温洹N抑皇窍胄藜羲倪吘?。我錯了,修剪應(yīng)該刪除字符串開頭和結(jié)尾的換行符和新行嗎?刪除上述新行的正確方法是什么?
2 回答

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個贊
將零長度空格字符 (\u200b) 添加到要刪除的字符列表中,然后它就會按您的預(yù)期工作。
$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) 可能是個好主意。

守著一只汪
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
警告!接受的答案不會刪除零寬度空格。相反,它會刪除單個字符\
,?u
,?2
,?0
,?b
。
如果有人想使用 刪除字符串開頭或結(jié)尾處的實(shí)際零寬度空格trim()
,這是正確的方法:
$trimmed?=?trim( ????$str, ????????"\xE2\x80\x8B"?//?zero-width?character );
- 2 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報(bào)
0/150
提交
取消