2010-01-30 9 views

Respuesta

12

Se podría hacer uso substr() y str_replace() con bastante facilidad (.):

$str = '1.1.0.1'; 
$pos = strpos($str,'.'); 
if ($pos !== false) { 
    $str = substr($str,0,$pos+1) . str_replace('.','',substr($str,$pos+1)); 
} 
echo $str; 
+0

esto funciona para mí –

0

Pensé que substr_replace() funcionaría aquí, pero lamentablemente no ... Aquí es un enfoque de expresiones regulares:

$str = preg_replace('~(\d+\.)(\d+)\.(\d+)\.(\d+)~', '$1$2$3$4', $str); 
2
$input="1.1.1.1"; 
$s = explode(".",$input) ; 
$t=array_slice($s, 1); 
print implode(".",array($s[0] , implode("",$t))); 

o

$input="1.1.1.1"; 
$s = explode(".",$input ,2) ; 
$s[1]=str_replace(".","",$s[1]); 
print implode(".",array($s[0] ,$s[1])); 
+0

o 'array_unshift ($ s);' –

0
$count = 0; 
$output = $input; 
do { 
    $output = preg_replace('/^(.+\.)(.+)\./', '$1$2', $output, -1, $count); 
} while ($count != 0); 
echo $output; 
6
$s = preg_replace('/((?<=\.)[^.]*)\./', '$1', $s); 
0

También puede probar la expresión regular a continuación con s interruptor,

<?php 
$string = '1.1.0.1'; 
$pattern = "/(?s)((?<=\.).*?)(\.)/i"; 
$replacement = "$1"; 
echo preg_replace($pattern, $replacement, $string); 
?> 

Salida:

1.101 
Cuestiones relacionadas