Working with PHP Octals and String conversions

前端 未结 5 742
暖寄归人
暖寄归人 2021-01-13 02:47

I\'m working with a database that has a bunch of serial numbers that are prefixed with leading 0\'s.

So a serial number can look like 00032432 or 56332432.

相关标签:
5条回答
  • 2021-01-13 03:14
    $str = sprintf('%o', $octal_value);
    
    0 讨论(0)
  • 2021-01-13 03:21

    To convert an octal to a string, cast it:

    $str = (string) 00032432;
    

    You can convert between octal and decimal with the functions octdec and decoct

    <?php
    echo octdec('77') . "\n";
    echo octdec(decoct(45));
    ?>
    

    http://uk.php.net/manual/en/function.octdec.php

    0 讨论(0)
  • 2021-01-13 03:25

    Everything from the database is automatically a string. Integers are strings, dates are strings, dogs are strings.

    If you are doing something weird, convert anything to a string by: $a = (string) 12;

    0 讨论(0)
  • 2021-01-13 03:30
    $serial = 00032432; //here you have an octal number
    $serial= strval($serial); //now you have a string
    if ($serial[0]=="0") {
     //do something
    }
    
    0 讨论(0)
  • 2021-01-13 03:38

    When you convert with (string) $number, you always get a string in decimal base, it doesn't matter if you write the number in octal mode or in decimal mode, an int is an int and it has not itself a base. It's his string representation that have to be interpreted with a base.

    You can get the octal string representation of a number in this way:

    $str = base_convert((string) 00032432, 10, 8);
    

    or giving the number in decimal rep:

    $str = base_convert((string) 13594, 10, 8);    
    

    or, more concisely but less clearly:

     $str = base_convert(00032432, 10, 8);
     $str = base_convert(13594, 10, 8);
    

    In the last the string conversion is made implicitly. The examples give all as result $str = "32432".

    base_convert converts a string representation of a number from a base to another

    If you want also the zeros in your string, you can add them with simple math.

    Hope this can help you.

    0 讨论(0)
提交回复
热议问题