【问题标题】:How to remove contact number in PHP? [closed]如何在 PHP 中删除联系人号码? [关闭]
【发布时间】:2014-01-22 02:44:02
【问题描述】:

您好,我正在创建一个移动短信应用程序

用户可以通过短信在他/她的手机中接收消息。

我的数据库中有 5000 条消息。但有些消息有联系电话

请参阅以下消息:

Success Is Not Permanent & Failure Is Not Final. So,
Never Stop Working After Success & Never Stop Trying After Failure...
1234567890

Success Is Not Permanent & Failure Is Not Final.
01234567890
So, Never Stop Working After Success & Never Stop Trying After Failure...

+911234567890 Success Is Not Permanent & Failure Is Not Final. So,
Never Stop Working After Success & Never Stop Trying After Failure...

我想removeget以上3种格式的联系电话123456789001234567890+911234567890

【问题讨论】:

  • $mystring = preg_replace('/\+?\d{9,11}/','',$mystring);
  • @MarkBaker 注释中的代码似乎在您提供的第三个示例中留下了最后的 0。它还会删除任何 + 符号。因此,如果一条消息说“啤酒 + 汉堡就是幸福”,您将失去 +。正如下面 Marcins 的回答所建议的那样,这是问题的最后一行。只需按...分解字符串并保留第一个数组块,然后更新字段。
  • 是的,我数错了号码的位数;但它当然不应该删除+,除非后面跟着一个数字
  • @TheHumbleRat:这应该可以解决这个问题:/(?:\+\d)?\d{9,12}/。查看演示:regex101.com/r/vP9gB4

标签: php regex mobile


【解决方案1】:

如果这是一次性过程,则运行查询(伪代码)

SELECT id,message FROM messages

while query $row

$regex = '/\+?\d{9,13}/';

$insertString = preg_replace($regex,'',$row['message']);

UPDATE Messages
SET message = $insertString
WHERE id = $row['id']
LIMIT 1;

end while

显然这在上面不起作用,但它为您提供了完成任务所需的代码结构和正则表达式。

LIMIT 1 很重要!

在执行此操作之前不要忘记备份您的数据库!

【讨论】:

  • 谢谢@GrahamRitchie..
【解决方案2】:

似乎它始终是消息的最后一行,所以只需删除最后一行。

【讨论】:

  • 没有任何地方显示。它可能是第一行或最后一行...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多