Мне нужно преобразовать пару файлов контактов (vCard) в один файл CSV с помощью PHP
Я уже пробовал этот скрипт в 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";
Этот скрипт очень ограничен, но я хотел поделиться им, так как он может быть легко адаптирован для других целей.
Я надеюсь, что это поможет кому-нибудь когда-нибудь.
Других решений пока нет …