好吧我说我的电话号码存储在我的表格中:
“0008675309”
我显然不想那样显示它,我想把它称为格式化它:
(000)867-5309
使用/ - 或分隔符将数据存储在数据库中会不会更好?这样我以后可以分开吗?或者是否可以按字符数分割它?
答案 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);