用条件 PHP 替换某些字符

Replace certain characters with condition PHP

我正在与 PHP 合作。我想根据满足的条件更改一些字符。我有一个循环,循环遍历一系列电话号码。它可以获得的值有两种可能的格式, +447532221414447532221414 。我想要做的只是将 +4444 替换为 0

所以我有这个检查

$sub = substr($row["phone"], 0, 3);
if($sub == "+44")
{
  $phone = str_replace("+44", "0", $row["phone"]);
}
else if(substr($row["phone"], 0, 2) == "44")
{
  $phone = str_replace("44", "0", $row["phone"]);
}

但我的问题是,当数字采用 447532221414 格式时,它不会将 44 更改为 0 代码可能有什么问题?或者有更好的方法吗?我的逻辑会影响最后两位数为 44 的数字吗?对于前。 447532221444

您可以使用 preg_replace:

$phone = "+447532221444";
$phone = preg_replace('/^\+?44/', '0', $phone);

var_dump($phone);

正则表达式的含义:

^ - 将强制解析器仅替换在字符串开头找到的匹配项

\+? - 将匹配 +,如果它存在,但如果缺少 +

,解析器将继续