合并vCard文件并将其转换为CSV


merge and convert vCard files to CSV

我需要使用PHP 将几个联系人(vCard)文件转换为一个CSV文件

我已经在nodejs中尝试过这个脚本:https://gist.github.com/sriranggd/738325

此外,我不想使用在线解决方案,也不想安装任何软件,所以我想知道是否可以找到一个我理解的脚本,在PHP或NodeJS 中本地运行它

在互联网上尝试了几个脚本(php&nodejs)后,我决定创建自己的小脚本,它从文件名中提取联系人姓名,并用一个简单的正则表达式搜索电话号码。

<?php
$files = scandir( './contacts' );
$fp = fopen( "./contacts.csv", 'w' );
foreach ($files as $contact) {
    if( !preg_match( "/'.vcf$/i", $contact ) ) continue;
    $name = str_replace( ".vcf", "", $contact );
    if( empty( $name ) ) continue;
    $content = file_get_contents( "./contacts/$contact" );
    preg_match_all( "/'+?'d+/i", $content, $m); 
    $row = array($name, end( $m[0] ) );
    fputcsv($fp, $row);
}
fclose($fp);
echo "Done";

这个脚本非常有限,但我想分享它,因为它可以很容易地适应其他用途。

我希望有一天它能帮助到别人。