删除电话号码的第一个字符,并在 PHP substr 中将其替换为零



正在开发一个PHP应用程序,我有一个这种格式的电话号码+259890111*** ,,现在正在使用substr_replace()+259替换为0,以便输出可以是:0**890111***

$number = '+259890111***';
$new_number = substr_replace($number, '0', 0, ($number == '+259'));

使用 str_replace() (正如 OP 所说it will always be +259

(
<?php
$number = '+259890111***';
echo $new_number = str_replace('+259', '0', $number);

https://3v4l.org/gQ8NT

注意:- 如果数字可以不同,但始终是 3 位数字以及+请执行以下操作:

$number = '+249890111***';
echo $new_number = substr_replace($number, 0, 0, 3);

输出:https://3v4l.org/jOuCK

根据 OP,字符串开头始终为 +259。
所以我们甚至可以使用 substr。

echo "0" . substr($number, 4);

如果要使用正则表达式,请将preg_replace与正则表达式一起使用/^+259/,仅当+259位于字符串的开头时才将其替换为0

  • ^ - 字符串的开头
  • + - 文字+
  • 259 - 要替换的数字
$result = preg_replace("/^+259/", "0", $number);
  • https://3v4l.org/b5m2O 现场演示

不过,您可以将str_replace()+259 一起使用,因为该数字永远不会包含非数字,除了开头的+259

$result = str_replace("+259", "0", $number);
  • https://3v4l.org/aJ38G 现场演示

最新更新