在数据库中,customers表中有一个名为customer_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); ?>
但我很困惑该把它放在哪里,插入什么变量,我只需要格式,只在这里,只适用于美国手机。
没关系。
在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>
就是这样。在代码中使用函数之前,您需要先拥有它。如果您有其他问题,请告诉我们。
您可以使用正则表达式
$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
如果您有函数的代码,例如:
<?php
function hello($hi) {
return($hi);
}
echo(hello("hey"));
?>
这会呼应"嘿"。
不管怎样,现在说到点子上:你想运行以下程序来回显电话号码。
<td class="main"><?php echo format_telephone($order->customer['telephone']); ?></td>
在尝试调用之前,请确保添加了函数代码!