目前在我的php应用程序中,我有以下代码将未格式化的10位数澳大利亚电话号码格式化为XX XXXX XXXX
。我想要做的是,如果数据库中的电话号码以04
开头,那么它将格式化为4,3,3,如XXXX XXX XXX
,否则将保持2,4,4格式。所有电话号码都以XXXXXXXXXX
的形式存储在数据库中。
这是我的代码所以希望有人可以解释一下。我知道需要if语句,但不确定如何检查04
的数字的前2位数。
<?php
$num = $record['busphone'];
$phoneformated = substr($num,0,2)." ".substr($num,4,4)." ".substr($num,6);
echo "Ph: " . $phoneformated;
?>
答案 0 :(得分: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);
}
答案 1 :(得分:0)
比较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)
。
答案 2 :(得分:0)
将第一个04与正则表达式匹配
$num = $record['busphone'];
// check first 04
if( preg_match('/^04/', $num) ) {
// Your format
// xxxx xxx xxx
}
else {
// xxxxxxxxxx
}