测量整数的长度(当被解释为八进制数时)

时间:2013-12-09 14:15:41

标签: php numbers octal

我需要知道一个数字中有多少个字符/数字。有些数字会有前导零。经过多次阅读后,我明白如果它有前导零,PHP会将其转换为octal个数字。但是我需要一种方法来消除它并将数字视为正常数字。我还需要能够在以后使用前导零打印到屏幕上。

有没有直接的解决方法呢?

我不想要八进制数。我希望它知道是00123或至少123 Not 83。

在计算数字中的字符时,我希望输出为35。并且是一个不是以

开头的字符串的数字
$a = 00123;
echo $a; // Returns 83
echo strlen((string)$a); // Returns 2
echo mb_strlen($a, "UTF-8"); //Returns 2

$b = "". 00123 ."";
echo strlen((string)$b);  //Returns 2
echo strlen(strval($b)); //Returns 2

2 个答案:

答案 0 :(得分:2)

您可以使用decoctstr_pad的组合,就像这样。 http://3v4l.org/TQgOq

<?php
echo str_pad(decoct(000123), 20, '0', STR_PAD_LEFT);

你可能想要理智地检查一些传入的值。

答案 1 :(得分:0)

下面是整个答案,我不喜欢评论中的代码:3

$a = "00123";
echo $a; // Returns 00123
echo strlen($a); // Returns 5
echo mb_strlen($a, "UTF-8"); //Returns 5

$b = "". 00123 .""; //unnecessary
$b = $a; //easier
echo strlen((string)$b);  //both
echo strlen(strval($b)); //unnecessary
echo strlen($b); //returns 5