【问题标题】:Removing the first characters of a phone number and replace them with zero in PHP subsstr删除电话号码的第一个字符并将它们替换为 PHP substr 中的零
【发布时间】:2019-07-15 07:25:41
【问题描述】:

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

$number = '+259890111***';

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

【问题讨论】:

  • 前几个字符是+259吗?还能是别的吗?
  • 不,总是+259
  • 试试echo preg_replace("/^\+259/", 0, "+259890111***");

标签: php string substr


【解决方案1】:

使用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

【讨论】:

  • 是的。不需要正则表达式
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    如果您想使用正则表达式,请使用 preg_replace 和正则表达式 /^\+259/ 来替换 +259,仅当它位于字符串开头时才使用 0

    • ^ - 字符串的开头
    • \+ - 文字 +
    • 259 - 要替换​​的号码
    $result = preg_replace("/^\+259/", "0", $number);
    

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

    $result = str_replace("+259", "0", $number);
    

    【讨论】:

      猜你喜欢
      • 2022-06-13
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2022-01-19
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多