我有一个非常奇怪的输出来自base64_decode函数。输出是一个长度为18的字符串,但是当我var_dump字符串时...长度是32! 这会影响我正在申请此字符串的preg_match函数。 知道为什么吗?
$input_line = base64_decode('OQA3ADgAMAA5ADgAMgA3ADQAMwA2ADAANwA5ADAAMAAwADAA');
var_dump($input_line);
输出
string(36) "978098274360790000"
此致
答案 0 :(得分:4)
字符串有很多不可打印的字符(NUL字节)。您可以通过像xxd
:
0000000: 3900 3700 3800 3000 3900 3800 3200 3700 9.7.8.0.9.8.2.7. 0000010: 3400 3300 3600 3000 3700 3900 3000 3000 4.3.6.0.7.9.0.0. 0000020: 3000 3000 0.0.
答案 1 :(得分:1)
特别感谢大家@ tim-cooper 字符串中有空字节,我在这里找到了解决方案: How can I remove the NULL character from string
基本上是这样的:str_replace("\0", "", $input_line);