1

私は、4桁の数字を個別に行うことなく、IPアドレスを8進数表現に変換するエレガントな方法をphpで探していました。

たとえば、IP: 1.2.3.4 は 0001.0002.0003.0004 になります。

4

2 に答える 2

3
$str_ip = '255.2.3.4';
echo vsprintf("%04o.%04o.%04o.%04o", sscanf($str_ip, "%d.%d.%d.%d"));
//0377.0002.0003.0004
于 2012-12-04T04:21:18.877 に答える
0

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);
于 2012-12-04T04:18:00.560 に答える