PHP Octals ve Dize dönüşümleri ile Çalışma

3 Cevap php

Ben önde gelen 0 ile 'öneki seri numaralarının bir grup var bir veritabanı ile çalışıyorum.

Yani seri numarası 00032432 veya 56332432 gibi bakabilirsiniz.

Sorun PHP ile ben octals ile dönüşüm sistemi nasıl çalıştığını anlamak kalmamasıdır.

Spesifik bir örnek ben dizeleri ile bu tamsayı tabanlı sayıların tüm dönüştürmek ve karşılaştırmak çalışıyorum olmasıdır.

Ben karşılaştırabilirsiniz böylece "00234" gibi bir dize gibi 00234 gibi bir sekizlik, dönüştürmek mümkün mü?

edit - belirli bir örnek ekleyerek. Ben aşağıdaki gibi bir seri üzerinde str fonksiyonları çalıştırmak için muktedir istiyorum.

  $serial = 00032432; // coming from DB

  if(substr($serial, 0, 1) == '0') {

        // do something

   } 

3 Cevap

Eğer (string) $number ile dönüştürdüğünüzde, her zaman ondalık tabanında bir dize olsun, bu sekizli modunda veya ondalık modunda sayı yazarsanız, bir int bir int farketmez ve kendisi bir değil var tabanı. Bu bir baz ile yorumlanması gerekir onun dize gösterimi var.

Bu şekilde bir sayının sekizlik dize temsilini alabilirsiniz:

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

veya ondalık rep numaralı veriyor:

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

ya da, daha özlü ama daha az net:

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

Son olarak dize dönüştürme örtülü yapılır. Örnekler sonuç $ str = "32432" olarak tüm verecektir.

base_convert başka bir tabandan bir sayının dize halinde temsilini dönüştürür

Ayrıca dize sıfır istiyorsanız, basit matematik ile ekleyebilirsiniz.

Bu size yardımcı olabilir umuyoruz.

Bir dize bir sekizlik dönüştürmek için, döküm:

$str = (string) 00032432;

Sen fonksiyonları ile sekizlik ve ondalık arasında dönüştürebilirsiniz octdec ve decoct

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

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

Veritabanından her şey otomatik bir dizedir. Tamsayılar köpekler dizeleri, tarihleri ​​dizeleri, dizeleri vardır.

Garip bir şey yapıyorsanız, bir dizeye bir şey dönüştürmek: $a = (string) 12;