用条件 PHP 替换某些字符
Replace certain characters with condition PHP
我正在与 PHP 合作。我想根据满足的条件更改一些字符。我有一个循环,循环遍历一系列电话号码。它可以获得的值有两种可能的格式, +447532221414
或 447532221414
。我想要做的只是将 +44
或 44
替换为 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);
正则表达式的含义:
^
- 将强制解析器仅替换在字符串开头找到的匹配项
\+?
- 将匹配 +
,如果它存在,但如果缺少 +
,解析器将继续
我正在与 PHP 合作。我想根据满足的条件更改一些字符。我有一个循环,循环遍历一系列电话号码。它可以获得的值有两种可能的格式, +447532221414
或 447532221414
。我想要做的只是将 +44
或 44
替换为 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);
正则表达式的含义:
^
- 将强制解析器仅替换在字符串开头找到的匹配项
\+?
- 将匹配 +
,如果它存在,但如果缺少 +