【发布时间】:2011-01-06 14:28:04
【问题描述】:
我需要解析字符串中的电话号码,每个字符串可以有多个号码。我的问题是电话号码可能是这样的:
912343267
91 234 32 67
912 343 267
34912343267
+34912343267
0034912343267
+34 912343267
+34 91 234 32 67
+34 912 343 267
我该如何处理呢?如果您有一些线索,将不胜感激。
最好的问候,
更新1:
我正在像在真实环境中一样测试代码:
$phone_list = "912343267 91 fgf ddf 234 32 67 dfffgg g 912 343 267 ffd dff fff 34912343267 ddssf f +34912343267 f fdd d 0034912343267 derd df e +34 912343267 fdd ff +34 91 234 32 67 ffd vv ff f +34 912 343 267";
$string = preg_replace('~[^0-9]~','',$phone_list);
echo $string;
给我:
91234326791234326791234326734912343267349123432670034912343267349123432673491234326734912343267
可以输出数组中的数字吗?
最好的问候,
更新2:
我用另一种字符串进行了测试,但失败了。如果有人对此有任何线索,我会发布示例。
$phone_list = '</div>A Front para<br /><br /><br /><br /><br /><br />-Apoio;<br />-Criação;<br />-Campanhas;<br />-Promoções<br /><br /><br />CONDIÇÕES:<br /><br />Local de Trabalho: Es<br />Folgas: Mistas<br /><br /><br /><br />ordem 500€<br /><br /><br /><br />Mínimos:<br /><br />- Conhecimentos;<br />- Ensino ;<br />-INGLÊS.<br /><br /><br /><br />Candidaturas: <br />email@ffff.es<br />218559372 | 927 555 929 | <br />RH<br />Rua C. Sal. 40<br />1000-000 Lisboa<br /><br /><br />';
$phone_list = preg_replace('~[^0-9a-z]~i','',$phone_list);
$phone_list = preg_split('~[a-z]+~i',$phone_list);
print_r($phone_list);
代码返回:
Array ( [0] => [1] => 500 [2] => 218559372927555929 [3] => 40 [4] => 1000000 [5] => )
代码应将:218559372 和 927555929 解析为单独的数字。
这有什么线索吗?
最好的问候,
【问题讨论】:
-
你要解析成什么格式?
-
您好,感谢您的回复。我想解析成“912343267”。有可能的?最好的问候,
-
你能举出整个字符串的例子吗?您能否澄清一下字符串中是否包含其他字符(例如句子中的电话号码......并且同一字符串中可能有多个电话号码等)或者整个字符串是否是一个数字,但不同格式的可能性?
-
@Crayon Violent,感谢您的回复。我已经更新了这个问题。如果你能提供一些线索。最好的问候,
-
好的,根据您的更新...如果您的字符串看起来确实如此...没有可靠的方法可以从中解析电话号码。相反,您必须后退一步,重新开始获取和/或存储字符串的方式。
标签: php parsing phone-number