好了說我已經保存在我的表我的電話號碼爲:拆分沒有分隔符的數據?
「0008675309」
我顯然不希望以顯示它就像這樣,我想,當我把它給格式化如:
(000)867-5309
它會更好將其存儲在一個分隔符,如/數據庫 - 或。以便我可以稍後拆分它?或者是否可以按字符數分割它?
好了說我已經保存在我的表我的電話號碼爲:拆分沒有分隔符的數據?
「0008675309」
我顯然不希望以顯示它就像這樣,我想,當我把它給格式化如:
(000)867-5309
它會更好將其存儲在一個分隔符,如/數據庫 - 或。以便我可以稍後拆分它?或者是否可以按字符數分割它?
這裏是一個班輪,你想要做什麼:
$phone = preg_replace('^(\d{3})(\d{3})(\d{4})$', '($1)$2-$3', $phone);
作爲一個額外的好處是不會改變格式,如果輸入格式不匹配(國際號碼)。
如果你只存儲北美電話號碼(10位數字),那麼@mellamokb指出,你可以任意方式。如果您可能正在儲存國際號碼,則應儘早詳細記錄(如果可能),因爲稍後可能很難知道如何標記號碼。
也是有道理的,我現在沒有與國際號碼合作,但是當我這樣做時,我會記住這一點,謝謝。 – aph107 2011-04-29 18:26:23
使用使preg_split與PREG_SPLIT_NO_EMPTY
其他的答案是完全正確的。如果你想爲它實際的代碼,我覺得有以下應該做的伎倆(索引可以由一個糟糕的吧!):
$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);
專業!完美,我需要將它們分成變量。雙重打擊!是否有一個很好的資源可以推薦來了解更多關於\ d和\ w的含義?或者也許要糾正要搜索的術語? – aph107 2011-04-29 18:45:09
我想你的編輯會使這種三重打擊成爲可能。 – aph107 2011-04-29 18:48:07
@luckycypher:http://php.net/manual/en/regexp.reference.escape.php – 2011-04-29 19:06:15