PHP如何带条件使用str_replace仅替换字符串开头的指定内容
str_replace 是全局匹配替换,会替换字符串中所有符合条件的内容,自然不适合只替换开头字符的场景,你可以用下面两种方法实现需求:
方法1:字符串截取判断(性能更高,适合简单场景)
先判断字符串前两位是否为92,满足条件的话直接拼接替换即可:
// 先确保处理后的字符串长度至少为2,避免下标报错 if (strlen($phone) >= 2 && substr($phone, 0, 2) == '92') { $phone = '0' . substr($phone, 2); }
处理后你拿到的$phone就是03007881292,符合预期。
方法2:正则锚定开头替换(写法更简洁)
用正则的^锚定符匹配字符串开头,只会替换开头位置的92:
$phone = preg_replace('/^92/', '0', $phone);
如果担心有前导空格的情况,可以加个\s*匹配开头的空白字符:preg_replace('/^\s*92/', '0', $phone)。
内容的提问来源于stack exchange,提问作者Hannah James
相关产品推荐
相关产品推荐

