遍历vcf文件获取电话号码

      前几天我朋友诺基亚的手机屏坏了,不知道送到哪去修了,反正还没修好,但是把联系人信息弄回来了,一个文件家,全部是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);

 

 

 

你可能感兴趣的:(PHP,OO)