Формат номера отличается в зависимости от мобильного или служебного телефона

В настоящее время в моем приложении 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;

?>

2

Решение

Сравните подстроку в 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),

0

Другие решения

Первый матч 04 с регулярным выражением

$num = $record['busphone'];
// check first 04
if( preg_match('/^04/', $num) ) {
// Your format
// xxxx xxx xxx
}
else {
// xxxxxxxxxx
}
0

Вы на правильном пути. Вот 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);
}
0
По вопросам рекламы [email protected]