2010-12-28 13 views
0
$length = strlen($s); 

if($length == 10) 
{ 

    $newval = ''; 
    for($i = 0; $i < 10; $i++) 
    { 

    $newval .= $s[$i]; 

    if($i == 2 || $i == 5) 
    { 
     $newval .= '-'; 
    } 

    } 

} 

Wenn jemand weiß, welche Art von String-Funktion ich verwenden würde, lass es mich wissen.Irgendwelche PHP-String-Funktion, um so etwas zu tun?

+0

Was bedeutet, dass Code tun? Ich bin faul, es zu tun. – BoltClock

+2

-1 für die Annahme, wir sollten wissen, was dieser Code tut. – Falmarri

Antwort

4

Eine einfache String-Operation sollte einfach gehalten werden, gehen so mit der direkteste Lösung:

$str = substr($input, 0, 3).'-'.substr($input, 3, 3).'-'.substr($input, 6); 

Aber wie in der Regel gibt es mehrere Möglichkeiten, die Haut eine Katze, so dass Sie Optionen haben. Wie:

$str = sprintf('%s-%s-%s', substr($input, 0, 3), substr($input, 3, 3), substr($input, 6)); 

Oder alternativ

$str = preg_replace('/^(.{3})(.{3})(.*)$/', '\1-\2-\3', $input); 

Oder alternativ

$str = preg_split('//', $input); 

if (5 > count($chrs)) { 
    array_splice($chrs, 4, 0, '-'); 
} 

if (3 > count($chrs)) { 
    array_splice($chrs, 2, 0, '-'); 
} 

$str = implode('', $chrs); 
+0

@Jacob: Danke Kumpel :-) –

5

Sicher, können Sie substr verwenden, dies zu erreichen:

if(strlen($s) == 10) { 
    $s = substr($s, 0, 3) . '-' . substr($s, 3, 3) . '-' . substr($s, 6); 
} 

codepad example

0

substr?

if(strlen($s) == 10) 
{ 
    $newval.=substr($s,0,3)."-".substr($s,3,3)."-".substr($s,6,4); 
} 
+0

Sie brauchen das Argument 'length' beim letzten' substr'-Aufruf nicht, wenn Sie bereits wissen, wie lang der gesamte String ist! :) –