在PHP中使用explode函数分割空字符

10

我正在尝试在一个字符串中按照看起来像是空字符的位置进行分割。

这是我使用的代码:$exp = explode('\x00', $bin);

然而,这并不起作用。但是,如果我执行$exp = explode($bin[5], $bin);(其中$bin的第5个字符是我想要分割的字符),它就可以正常工作。

如果我执行var_dump($bin[5]),它会显示一个带有问号的方块(),在源代码中,我得到:�

有人能告诉我在这个字符上进行分割的最佳方法是什么吗?或者即使它是空字符(根据ASCII表,除非我读错了)。

谢谢

1个回答

16

试试双引号:

$exp = explode("\x00", $bin);

或者,捕获等效的ASCII字符代码,并使用chr传递它。

$char = ord($bin[5]);

// Replace this with the actual number returned from ord
$exp = explode(chr($char), $bin);

如果您尚未确定,这个例子会排除它可能实际上不是空字符的可能性。


这是正确的。"如果字符串被双引号(")括起来,PHP将解释更多的转义序列以表示特殊字符:...." - Unicron
1
谢谢,双引号起作用了。现在我该如何给你点赞?它说投票需要15个声望值 -.- - GManz
好的,它说我可以在9分钟内完成。谢谢。 - GManz
1
@Hosh:完全欢迎。@Unicron:我在想你的评论时,听到奥森·威尔斯在我脑海中朗读,这是不是很奇怪? - Michael McTiernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接