拆分数据没有分隔符?

时间:2011-04-29 18:10:24

标签: php sql syntax split

好吧我说我的电话号码存储在我的表格中:

“0008675309”

我显然不想那样显示它,我想把它称为格式化它:

(000)867-5309

使用/ - 或分隔符将数据存储在数据库中会不会更好?这样我以后可以分开吗?或者是否可以按字符数分割它?

5 个答案:

答案 0 :(得分:3)

以任何格式处理电话号码的性能成本和代码都很简单,因此这取决于您的偏好。要回答你的问题,可以很容易地使用例如substr函数来获取前三个字符,接下来的三个字符和后四个字符。

答案 1 :(得分:2)

如果您只存储北美电话号码(10位数字),那么正如@mellamokb所说,无论哪种方式都可以。如果你可能正在存储国际号码,你应该尽早捕捉尽可能多的细节(如果可能的话),因为以后可能很难知道如何标点数字。

答案 2 :(得分:2)

将preg_split与PREG_SPLIT_NO_EMPTY

一起使用

答案 3 :(得分:2)

这是一个可以满足您需求的衬垫:

$phone = preg_replace('^(\d{3})(\d{3})(\d{4})$', '($1)$2-$3', $phone);

作为额外奖励,如果输入格式不匹配(国际号码),将不会更改格式。

答案 4 :(得分:1)

其他答案完全正确。如果你想要它的实际代码,我认为以下应该做的伎俩(索引可能会被一个oops关闭!):

$phone_number="0008675309"
$phone_number=substr_replace($phone_number, "(", 0, 0);
$phone_number=substr_replace($phone_number, ")", 4, 0);
$phone_number=substr_replace($phone_number, "-", 8, 0);