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



我需要知道一个数字中有多少个字符/数字。有些数字会以零开头。经过大量阅读,我了解到如果它有前导零,PHP会将其转换为八进制数字。但我需要一种方法来消除它,并将该数字视为正常数字。我还需要能够稍后用前导零将其打印到屏幕上。

这方面有什么直接的工作吗?

我不想要八进制数。我想知道是00123或者至少是123不是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

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

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

不过,您可能需要对一些传入值进行健全性检查。

以下是完整的答案,我不喜欢注释中的代码: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

相关内容

  • 没有找到相关文章

最新更新