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

if($length == 10) 
{ 

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

    $newval .= $s[$i]; 

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

    } 

} 

Если кто-нибудь знает, какую функцию строки я буду использовать, сообщите мне.Любая функция php string, чтобы сделать что-то вроде этого?

+0

Что делает этот код? Я ленив, чтобы запустить его. – BoltClock

+2

-1, предполагая, что мы должны знать, что делает этот код. – Falmarri

ответ

4

Простая операция строки должен быть простым, так что идти с наиболее прямым вперед решением:

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

Но, как правило, есть несколько способов кожи кошки, так что у вас есть варианты. Как:

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

Или же

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

Или же

$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: спасибо mate :-) –

5

Конечно, вы можете использовать substr для выполнения этого:

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

Вам не нужен аргумент 'length' на последнем вызове' substr', если вы уже знаете, что такое длина всей строки! :) –