簡體   English   中英

使用PHP格式化電話號碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM