任何PHP字符串函数来做这样的事情?

时间:2010-12-28 07:33:19

标签: php php-5.2

$length = strlen($s);

if($length == 10)
{

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

    $newval .= $s[$i];

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

  }

}

如果有人知道我会使用什么类型的字符串函数,请告诉我。

3 个答案:

答案 0 :(得分:5)

当然,您可以使用substr来完成此任务:

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

codepad example

答案 1 :(得分: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);

答案 2 :(得分:0)

substr?

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