错误的转换? String =>诠释

时间:2013-01-31 16:07:37

标签: php

我在将字符串转换为int时遇到问题。 数组$ input包含以下值:

array(3) { [0]=> string(6) "30" [1]=> string(2) "01" [2]=> string(9) "2013" } 

首先我删除前导零,因为八度陷阱。所以这是我的代码:

foreach ($input as $key => $var) {
        $input[$key] = trim($var,"0");
        $input[$key] = (int)$var;
    }

但不幸的是结果并不令人满意。

array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2013) }

30现在为零?这怎么可能?

1 个答案:

答案 0 :(得分:2)

[0]=> string(6) "30"

此字符串在开头有一些不可打印的字符。它看起来像2个字符长,但实际上有6个字符。这些字符会导致字符串被转换为0,如文档所示。

您应该对字符串尝试bin2hex以查看我们正在讨论的字节值,然后使用此知识来确定它们的来源。

"2013"字符串有额外的字符,但在这种情况下,它们的外观是尾随