[英]Format a phone number with PHP
在數據庫中,客戶表中有一個名為customers_telephone的字段。 我想要輸出這樣的電話號碼(555)555-5555。 在此CMS(oscommerce)中,invoice.php的輸出如下所示。
<td class="main"><?php echo $order->customer['telephone']; ?></td>
我發現了可能有效的代碼:
<?php
function format_telephone($phone_number)
{
$cleaned = preg_replace('/[^[:digit:]]/', '', $phone_number);
preg_match('/(\d{3})(\d{3})(\d{4})/', $cleaned, $matches);
return "({$matches[1]}) {$matches[2]}-{$matches[3]}";
}
?>
<?php echo format_telephone($customer_phone); ?>
但是我很困惑將其放置在何處以及要插入哪些變量,我只需要格式,僅在這里和僅適用於美國電話。
您可以使用正則表達式
$phone_numbers = array(
'555-555-5555',
'5555425555',
'555 555 5555',
'1(519) 555-4444',
'1 (519) 555-4422',
'1-555-555-5555',
'1-(555)-555-25555',
);
$regex = "/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i";
foreach( $phone_numbers as $number ) {
echo $number . ': ' . ( preg_match( $regex, $number ) ? 'valid' : 'invalid' ) . '<br/>';
}
555-555-5555: valid
5555425555: valid
555 555 5555: valid
1(519) 555-4444: valid
1 (519) 555-4422: valid
1-555-555-5555: valid
1-(555)-555-5555: valid
1-(555)-555-25555: invalid
沒關系。
在Invoice.php文件中,在<td
使用它之前,請確保具有以下代碼塊
<?php
function format_telephone($phone_number)
{
$cleaned = preg_replace('/[^[:digit:]]/', '', $phone_number);
preg_match('/(\d{3})(\d{3})(\d{4})/', $cleaned, $matches);
return "({$matches[1]}) {$matches[2]}-{$matches[3]}";
}
?>
因此,將他的代碼行放在某個位置的上方,然后在此代碼行中確保您擁有
<td class="main"><?php echo format_telephone($order->customer['telephone']); ?></td>
而已。 在代碼上使用該功能之前,需要先具有該功能。 讓我們知道您是否還有其他問題。
如果您有函數的代碼,例如:
<?php
function hello($hi) {
return($hi);
}
echo(hello("hey"));
?>
這會回聲“嘿”。
無論如何,現在到了要點:您可能需要運行以下命令以回顯電話號碼。
<td class="main"><?php echo format_telephone($order->customer['telephone']); ?></td>
在嘗試調用之前,請確保添加了功能代碼!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.