如何删除PHP中的第一个数字

How to delete the first digit number in PHP

我有一个 phone 数字的数据以 +63 和 09

开头

例如用户输入 09123456789 然后保存。如果用户输入 +639123456789 应该不会成功,因为它完全是同一个数字。

我尝试使用 substr_replace

$data3 = substr_replace("+63", "0",0, 3);

还有其他选择吗?我认为 substr_replace 将来会出错。

谢谢

如果 +63 必须在开头,您可以使用 preg_replace

$s = preg_replace('~^\+63~', '0', $s);

这里,

  • ^ - 字符串位置的开始
  • \+ - 文字 +
  • 63 - 63 子串。

参见regex demo and a PHP demo

如果您需要清理和验证国际 phone 号码,请也考虑 to use a combination of intl-tel-input on front-end and libphonenumber-for-php back-end。

在这种情况下,你可以有一个条件来检查并有 str_replace

如果您的请求中有 +,则删除前 3 个字母,包括 +

if (substr($phone, 0, 1) == '+') {
    $phone = str_replace(substr($phone, 0, 3), '0', $phone);
}

$phone_number = $phone;