<?php
$str="192.168.1.1";
function callback($m){
$ip="";
for($i=1;$i<=4;$i++){
$ip.=sprintf("%03d",$m[$i]);
if($i!=4) $ip.="- ";
}
return $ip;
}
echo preg_replace_callback("'(\d+)\.(\d+)\.(\d+)\.(\d+)'","callback",$str);
?>
$str="192.168.1.1";
function callback($m){
$ip="";
for($i=1;$i<=4;$i++){
$ip.=sprintf("%03d",$m[$i]);
if($i!=4) $ip.="- ";
}
return $ip;
}
echo preg_replace_callback("'(\d+)\.(\d+)\.(\d+)\.(\d+)'","callback",$str);
?>
$str="192.168.1.1";
$bar="sprintf('%03d','\\1').'- '.sprintf('%03d','\\2').'- '.sprintf('%03d','\\3').'- '.sprintf('%03d','\\4')";
echo preg_replace("'(\d+)\.(\d+)\.(\d+)\.(\d+)'e","$bar",$str);
?>
function swap($v) {
return sprintf("%03d",$v);
}echo preg_replace(array("/\./","/(\d+)/e"),array("-","swap(\\1)"),"192.168.1.1");
?>
$strs = explode(".", $str);
$new_str = "";
foreach ($strs as $str)
{
$str = str_pad($str, 3, "0", STR_PAD_LEFT);
$new_str .= "-" . $str;
}
$new_str = substr($new_str, 1);
print_r($new_str)?>