我的印象是,如果省略指定特定字符的第二個參數,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 回答

慕婉清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) 可能是個好主意。

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