我正在使用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
答案 0 :(得分:6)
您可以使用10:07:23 INFO main o.a.c.h.Http11NioProtocol Initializing ProtocolHandler ["http-nio-192.168.2.63-8080"]
:
preg_replace
正则表达式意味着什么:
$phone = "+447532221444";
$phone = preg_replace('/^\+?44/', '0', $phone);
var_dump($phone);
- 将强制解析器仅替换在字符串开头找到的匹配
^
- 将匹配\+?
(如果存在),但如果+
缺失则解析器将继续