样式变量?

时间:2011-07-13 04:28:58

标签: php

说我有以下内容:

$var = "1234567890";

我希望它显示为:

1234 567 890

使用前四个数字,一个空格,然后是三个数字,一个空格,然后是三个数字。

我该怎么做?

谢谢:)

4 个答案:

答案 0 :(得分:3)

您可以使用substr

echo substr($var, 0, 4) . ' ' . substr($var, 4, 3) . ' ' . substr($var, 7, 3);

然而,在执行此操作之前,您应该检查以确保字符串是您期望的长度并且其中只包含数字字符,如下所示:

if (strlen($var) == 10 && is_numeric($var))
{
    // $var passed the check
}
else
{
    // $var failed the check
}

答案 1 :(得分:1)

假设您的数据是有效的10位数字:

echo substr( $var, 0, 4 ) . ' ' . substr( $var, 4, 3 ) . ' ' . substr( $var, 7 );

答案 2 :(得分:1)

如果你不太特别,你可以这样做:

$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7);

这将在您描述时将其分解,如果输入大于预期,它将作为“奖励”返回无限数量的附加字符。或者你可以做

$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7,3);

截断超过10日的数字。

答案 3 :(得分:0)

你也可以使用正则表达式:

$var = preg_replace("@(\d{4})(\d{3})(\d{3})@", "\\1 \\2 \\3", $var);

或者,更确切地说:

$var = preg_replace("@^(\d{4})(\d{3})(\d{3})$@", "\\1 \\2 \\3", $var);