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

标签 php numbers octal

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

有没有直接解决这个问题的方法?

我不想要八进制数。我想让它知道是 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

最佳答案

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

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

不过,您可能希望对某些传入值进行完整性检查。

关于php - 测量整数的长度(当解释为八进制数时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20472765/

相关文章:

php - CLI 无法访问 getenv

javascript - JavaScript 文件中八进制/十六进制与 ascii 占用的空间差异

c++ - 如何使用动态内存分配将十进制转换为八进制?

php - preg_replace file_get_contents 中不包含单词的所有链接

php - 使用 XAMPP 时没有选择数据库错误

ruby-on-rails - 如何解析不同语言环境格式的数字?

c++ - Qt 代码编辑器在右侧区域显示行号

c - 打印时错误地将宏转换为 int

php - 在树莓派上安装 MySQL、PHP 和 Apache

javascript - 根据字符串参数生成相同的随机数