私は、4桁の数字を個別に行うことなく、IPアドレスを8進数表現に変換するエレガントな方法をphpで探していました。
たとえば、IP: 1.2.3.4 は 0001.0002.0003.0004 になります。
私は、4桁の数字を個別に行うことなく、IPアドレスを8進数表現に変換するエレガントな方法をphpで探していました。
たとえば、IP: 1.2.3.4 は 0001.0002.0003.0004 になります。
$str_ip = '255.2.3.4';
echo vsprintf("%04o.%04o.%04o.%04o", sscanf($str_ip, "%d.%d.%d.%d"));
//0377.0002.0003.0004
array_walk を使用して入力を避けることはできますが、ループを避けることはできないと思います。$value を文字列としてキャストし、ゼロで埋めることもできます。
$ip = '123.12.23.34';
$ip_a = explode('.', $ip);
array_walk($ip_a, function(&$value, $key){ $value = decoct($value); });
echo implode('.',$ip_a);