PHP验证和过滤了一个国际号码列表,所以我只留下了那个国家的有效手机号码


PHP validating and filtering a list of international numbers so im left only with valid cellphone numbers from that country

我正在构建一个工具,用于验证和筛选csv/xlsx中的数字列表。

  1. 过滤所有非蜂窝
  2. 验证它确实是一个来自选定国家的蜂窝号码(可能是dynamicaly)

我试过谷歌的libphonenumber,但我真的不知道如何实现它。请帮助使用一个基本的正则表达式,这样我就可以用不同的国家代码来修改它。

这个问题非常复杂,而且并不总是可以解决的。

例如,虽然大多数(所有?)欧洲国家的手机号码都有单独的前缀,但在NANPA地区(美国、加拿大和其他国家)却不是这样。事实上,固定电话和手机号码共享相同的地理前缀,绝对没有办法区分它们。

谷歌的libphonenumber实际上很棒,它包含了每个国家的数据。对于大多数国家,它还包括区分手机号码和固定电话的方法,如果可能(对于NANPA,它总是返回"固定电话或移动电话"常数)。我在很多项目中都使用过这个库,它真的很好(我也为它做出了贡献)
然而,libphonenumber官方仅适用于C/C++、Java和JavaScript,因此您无法用PHP代码真正执行它。有一个UNOFFICIAL PHP端口可用,它似乎也很更新,但我不知道它的工作效果如何。那里也有文档和示例
(然而,最终,libphonenumber中最大的值在数据表中,其余的只是"伴随代码")。

首先你必须知道所有的数字格式。。。。。你可以用preg_match在数字前面找到+或()等。然后我会分解前两个数字,很可能是国家代码。。。。。然后做if语句,看看这两个数字,并根据这些数字来决定这个数字来自哪个国家。