В настоящее время в моем приложении php у меня есть следующий код, который форматирует неформатированный 10-значный австралийский телефонный номер в XX XXXX XXXX
, Что я хотел бы сделать, это если номер телефона в базе данных начинается с 04
тогда это будет форматировать как 4,3,3, как XXXX XXX XXX
в противном случае будет поддерживать форматирование 2,4,4. Все номера телефонов хранятся в базе данных как XXXXXXXXXX
,
Вот мой код, так что, надеюсь, кто-то сможет пролить свет. Я знаю, что должен быть оператор if, но не знаю, как проверить первые 2 цифры номера для 04
,
<?php
$num = $record['busphone'];
$phoneformated = substr($num,0,2)." ".substr($num,4,4)." ".substr($num,6);
echo "Ph: " . $phoneformated;
?>
Сравните подстроку в if
заявление:
if (substr($num, 0, 2) == '04') {
$phoneformatted = substr($num, 0, 4) . " " . substr($num, 4, 3) . " " . substr($num, 7);
} else {
$phoneformatted = substr($num, 0, 2) . " " . substr($num, 2, 4) . " " . substr($num, 6);
}
Обратите внимание, что у вас была опечатка при форматировании номеров для проживания, substr($num, 4, 4)
должно быть substr($num, 2, 4)
,
Первый матч 04 с регулярным выражением
$num = $record['busphone'];
// check first 04
if( preg_match('/^04/', $num) ) {
// Your format
// xxxx xxx xxx
}
else {
// xxxxxxxxxx
}
Вы на правильном пути. Вот if
заявление
$prefix = substr($num,0,2);
if($prefix == '04') {
$phoneformated = $prefix . " ".substr($num,2,4)." ".substr($num,-6);
} else {
$phoneformated = substr($num,0,4)." ".substr($num,2,3)." ".substr($num,-3);
}