Trabajar con PHP Octals y conversiones de cadenas

Estoy trabajando con una base de datos que tiene un montón de números de serie que tienen el prefijo 0 inicial.

Entonces un número de serie puede parecerse a 00032432 o 56332432.

El problema es con PHP. No entiendo cómo funciona el sistema de conversión con octals.

Un ejemplo específico es que estoy tratando de convertir y comparar todos estos números enteros con cadenas.

¿Es posible convertir un octal, como 00234 en una cadena como “00234” para que pueda compararlo?

editar – agregar un ejemplo específico. Me gustaría poder ejecutar funciones str en el serial como a continuación.

$serial = 00032432; // coming from DB if(substr($serial, 0, 1) == '0') { // do something } 

Cuando convierte con (string) $number , siempre obtiene una cadena en base decimal, no importa si escribe el número en modo octal o en modo decimal, un int es un int y no tiene una base en sí mismo. Es su representación de cadena que debe interpretarse con una base.

Puede obtener la representación de cadena octal de un número de esta manera:

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

o dando el número en decimal:

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

o, de forma más concisa pero menos clara:

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

En el último, la conversión de cadenas se hace implícitamente. Los ejemplos dan todos como resultado $ str = “32432”.

base_convert convierte una representación de cadena de un número de una base a otra

Si también desea los ceros en su cadena, puede agregarlos con matemática simple.

Espero que esto le pueda ayudar.

Para convertir un octal en una cadena, ejecútelo:

 $str = (string) 00032432; 

Puede convertir entre octal y decimal con las funciones octdec y decoct

  

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

 $str = sprintf('%o', $octal_value); 
 $serial = 00032432; //here you have an octal number $serial= strval($serial); //now you have a string if ($serial[0]=="0") { //do something } 

Todo desde la base de datos es automáticamente una cadena. Los enteros son cadenas, las fechas son cadenas, los perros son cadenas.

Si estás haciendo algo raro, convierte cualquier cosa en una cadena por: $a = (string) 12;