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

如何删除PHP中的第一位数字,php,regex,laravel,preg-replace,regex-negation,Php,Regex,Laravel,Preg Replace,Regex Negation,我有一个电话号码的数据,以+63和09开头 例如,用户插入09123456789,然后保存。如果用户输入+639123456789,则不会成功,因为该数字完全相同 我试着用substr\u替换 $data3 = substr_replace("+63", "0",0, 3); 还有其他选择吗?我认为未来的替换将出现错误 谢谢如果+63必须在开始时,您可以使用类似的preg\u replace $s = preg_replace('~^\+63~', '0', $s); 这里, ^-字符串位

我有一个电话号码的数据,以+63和09开头

例如,用户插入09123456789,然后保存。如果用户输入+639123456789,则不会成功,因为该数字完全相同

我试着用substr\u替换

$data3 = substr_replace("+63", "0",0, 3);
还有其他选择吗?我认为未来的替换将出现错误


谢谢

如果
+63
必须在开始时,您可以使用类似的
preg\u replace

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

  • ^
    -字符串位置的开始
  • \+
    -文字
    +
  • 63
    -一个
    63
    子字符串
请参阅和


如果您需要对国际电话号码进行消毒和验证,请同时考虑使用前端和后端的组合。

如果必须在开始时使用
+63
,您可以使用类似的
preg\u replace

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

  • ^
    -字符串位置的开始
  • \+
    -文字
    +
  • 63
    -一个
    63
    子字符串
请参阅和


如果您需要对国际电话号码进行消毒和验证,请同时考虑使用前端和后端的组合。

在这种情况下,您可以有条件检查并让
str_替换

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

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

$phone_number = $phone;

在这种情况下,您可以检查一个条件,并让
str\u replace

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

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

$phone_number = $phone;

尝试
stru替换('+63','0')
substr\u替换
可能比
str\u替换
更安全。我看不出您试图解决的问题。在我看来,这个问题是离题的。虽然这些问题已经解决了,但它可能会发布在代码评审上。我建议在前端和后端使用。试试
str_replace('+63','0')
substr_replace
可能比
str_replace
更安全。我看不出您试图解决的问题。在我看来,这个问题是离题的。虽然这些问题已经解决了,但它可能会发布在代码评审上。我建议在前端和后端使用。