欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

遍历vcf文件获取电话号码

程序员文章站 2022-03-13 10:52:11
...

      前几天我朋友诺基亚的手机屏坏了,不知道送到哪去修了,反正还没修好,但是把联系人信息弄回来了,一个文件家,全部是vcf格式的文件,一个一个的。想把这些联系人存到一个暂时用的手机里。杯具的事情发生了,不知道怎么弄。

 

      当然我也不知道怎么弄,最后我说那要不把这些号码在一张纸上打印出来吧,凑活着用用。

 

      那我们身为程序员,肯定弄一个程序解决了,自己手动操作不要太痛苦哦。

 

     代码很短,写加调试加结果,十分钟搞定收工。

 

     代码附上:

 

<pre>
<h1>遍历vcf文件获取电话号码</h1>
<?php
file_put_contents('log.txt','');
if($handle = opendir('abc')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            if(is_file('./abc/'.$file)){
                $poa = substr($file,0,(strrpos($file,'.')));

                $s = file_get_contents('./abc/'.$file);
                preg_match_all("|CELL:(\+)?(\d+)|",$s,$o);
                preg_match_all("|HOME:(\+)?(\d+)|",$s,$oo);

                $str = "姓名:".sprintf("%-30s",$poa)." 号码:{$o[0][0]} {$oo[0][0]}"."\r\n";
                file_put_contents('log.txt',$str,FILE_APPEND);
            }
        }
    }
    closedir($handle);
}
?>
</pre>
 

   当然,快餐做的,代码还是有些缺陷的,但是针对当前问题还是完美解决的!

 

 

 

PS:

 

我想如果一个人有四个号码,该怎么样提取。却发现这么一个情况

TEL;WORK;VOICE:123123

 

TEL;CELL:13771106535

 

不同软件存储的vcf文件的电话前缀是不一样的,所以需要各位根据实际的情况处理了。

 

改这里你会获得你要的结果。

preg_match_all("|CELL: (\+)?(\d+)|",$s,$o);
preg_match_all("|HOME: (\+)?(\d+)|",$s,$oo);

 

 

 

相关标签: OO PHP