我的代码:
$string="655:47 Text: 0 n\some more text here\t\2\r\3\tl\0\f0\\f1\\f2\\a0\0\a1\0\a2\255";
$a=explode("\\",$string);
var_dump($a);
虽然我得到的输出是:
array(7) {
[0]=>
string(33) "655:47 Text: 0 n"
[1]=>
stringl20) "some more text
0"
[2]=>
string(2) "f1"
[3]=>
string(2) "f2"
[4]=>
string(3) "a0"
[5]=>
string(3) "a1"
[6]=>
string(3) "a2"
}
我想在找到的每个'\'聊天中拆分字符串(并保留所有值) 虽然我希望该功能爆炸并正常工作。 我该如何解决这个问题?
答案 0 :(得分:3)
使用单引号而不是双引号,
$string='655:47 Text: 0 n\some more text here\t\2\r\3\tl\0\f0\\f1\\f2\\a0\0\a1\0\a2\255';
$a=explode('\',$string);
var_dump($a);
在php中,如果你使用单引号,那么像'/ t'这样的特殊字符会失去它们的含义并表现为普通的字符串。
答案 1 :(得分:1)
工作得很好。你只是没有看到所有不可打印的角色。
您是否打算在邮件中包含\n
或\t
等字符,但在双引号("
)中使用时,您并不完全清楚。正在逃避特殊角色。例如,"\t"
是一个实际包含制表符的字符串,\n
是换行符。
如果您不想要这些字符,只需将这些双引号更改为单引号:
$string='655:47 Text: 0 n\some more text here\t\2\r\3\tl\0\f0\\f1\\f2\\a0\0\a1\0\a2\255';
如果您这样做,您将获得以下输出:
array(17) {
[0]=>
string(16) "655:47 Text: 0 n"
[1]=>
string(19) "some more text here"
[2]=>
string(1) "t"
[3]=>
string(1) "2"
[4]=>
string(1) "r"
[5]=>
string(1) "3"
[6]=>
string(2) "tl"
[7]=>
string(1) "0"
[8]=>
string(2) "f0"
[9]=>
string(2) "f1"
[10]=>
string(2) "f2"
[11]=>
string(2) "a0"
[12]=>
string(1) "0"
[13]=>
string(2) "a1"
[14]=>
string(1) "0"
[15]=>
string(2) "a2"
[16]=>
string(3) "255"
}