格式编号因手机或企业而异 phone

Format number different depending on mobile or business phone

目前在我的 php 应用程序中,我有以下代码将未格式化的 10 位澳大利亚 phone 号码格式化为 XX XXXX XXXX。我想做的是,如果数据库中的 phone 数字以 04 开头,那么它将像 XXXX XXX XXX 一样将其格式化为 4,3,3,否则将保持 2,4, 4格式化。所有 phone 个号码在数据库中存储为 XXXXXXXXXX.

这是我的代码,希望有人能解释一下。我知道需要有一个 if 语句,但不确定如何检查 04.

数字的前 2 位数字
<?php

    $num = $record['busphone'];
    $phoneformated = substr($num,0,2)." ".substr($num,4,4)." ".substr($num,6);

    echo "Ph: " . $phoneformated;

?>

你走在正确的轨道上。这是一个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);
}

比较 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
}