为什么PHP的爆炸错误?
这里是PHP代码:
var_dump($value);
string(103) "0e0cU Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
var_dump(explode(',', $value));
array(1) { [0]=> string(103) "0e0cU Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3" }
为什么不是在逗号分隔的字符串?
因为你想要explode()
的字符串中的字符不是逗号 - 嗯,不是一个ASCII逗号: ,
(十进制代码点44
)。 字符串中的逗号是一个Unicode字符'SINGLE LOW-9 QUOTATION MARK'(十进制代码点8218
)。
在你的JavaScript控制台中试试这个:
> '‚' === ','
false
经过大量调查,真正的问题是输入字符串是在Windows-1252编码中。 因此,试图取代U + 201A,直到我先将它转换为unicode才奏效。
链接地址: http://www.djcxy.com/p/92673.html上一篇: Why is PHP's explode wrong?
下一篇: Outputting HTML with echo considered bad practice in PHP?