我需要知道一个数字中有多少个字符/数字。有些数字会有前导零。经过多次阅读后,我明白如果它有前导零,PHP会将其转换为octal个数字。但是我需要一种方法来消除它并将数字视为正常数字。我还需要能够在以后使用前导零打印到屏幕上。
有没有直接的解决方法呢?
我不想要八进制数。我希望它知道是00123或至少123 Not 83。
在计算数字中的字符时,我希望输出为3
或5
。并且是一个不是以
$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
答案 0 :(得分:2)
您可以使用decoct和str_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