jac*_*013 0 php string format substring
我正在研究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"]);
}
Run Code Online (Sandbox Code Playgroud)
但我的问题是,当数在447532221414格式它不会改变的44,以0什么可能是错误的代码?还是有更好的方法?我的逻辑会影响44最后两位数字吗?对于前者447532221444
你可以使用preg_replace:
$phone = "+447532221444";
$phone = preg_replace('/^\+?44/', '0', $phone);
var_dump($phone);
Run Code Online (Sandbox Code Playgroud)
正则表达式意味着什么:
^ - 将强制解析器仅替换在字符串开头找到的匹配项
\+?- 将匹配+,如果它存在,但如果+缺少解析器将继续