为什么PHP爆炸错误?

时间:2013-04-13 21:31:01

标签: php

这是PHP代码:

var_dump($value);
string(103) "0e0cU\0Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
var_dump(explode(',', $value));
array(1) {
  [0]=>
  string(103) "0e0cU\0Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
}

为什么不在逗号上拆分字符串?

2 个答案:

答案 0 :(得分:11)

因为您尝试explode()的字符串中的字符不是逗号,而是an ASCII comma: , (decimal code point 44)。字符串中的逗号是Unicode Character 'SINGLE LOW-9 QUOTATION MARK' (decimal code point 8218).

在JavaScript控制台中试试这个:

> '‚' === ','
  false

答案 1 :(得分:0)

经过大量调查,真正的问题是输入字符串是Windows-1252编码。因此,在我首先将其转换为unicode之前,尝试替换U + 201A并不起作用。