原问题
字符串长度问题
vardump打印一字符串
string(14) "00107042012"
获取到的字符串长度怎么是14
明明是11个数字啊!
为什么?
回答:
你的字符串有前有三个特殊字符(+BOM)
$str = '00107042012';
$str1 = '00107042012';
var_dump($str);
var_dump($str1);
?>
看看两个输出就知道了。
那三个特殊字符的ascii码239,187,191就是BOM头的 EF BB BF
echo '';
$str = '00107042012';
$str1 = '00107042012';
echo 'str:
';
for($i=0,$len=strlen($str);$i
echo ord(substr($str,$i,1)).'
';
}
echo '
str1:
';
for($i=0,$len=strlen($str1);$i
echo ord(substr($str1,$i,1)).'
';
}
?>
输出
str:
239
187
191
48
48
49
48
55
48
52
50
48
49
50
str1:
48
48
49
48
55
48
52
50
48
49
50
可以使用程序去掉。
$str = '00107042012';
$str = substr($str, 3);
var_dump($str);
?>