В базе данных у меня есть поле в таблице клиентов, названное 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>
Убедитесь, что вы добавили код функции, прежде чем пытаться вызвать его!