1

我最近遇到了一个问题...我想将我的联系人从我的 LG U990 Viewty 转移到我的 iPhone 3GS

我将联系人从我的 LG 导出到一个包含所有地址的 vCard 文件中

BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8:A;
TEL;CELL;CHARSET=UTF-8:*121#
REV:20120720T081000Z
END:VCARD

现在,上述格式对所有联​​系人重复...在该单个文件中...

我想将此单个文件转换为原始 vcf 文件...不知道它们也无法导入 iPhone :(

实际解决方案:我需要将原始批量 vCard 文件上传到新的 gmail 帐户联系人并将我的联系人同步到 iTunes 中的该列表......最后我做到了

但是,我将 PHP 中的这段代码作为付费软件提供,人们购买它来破译联系人......这是下面的代码......免费

contacts.txt 是那个文件...在文本编辑器中打开该 vCard 文件并复制内容并制作此 contacts.txt 文件

$filename = "contacts.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd,filesize ($filename));

fclose ($fd);
$delimiter = "BEGIN:VCARD";
$splitcontents = explode($delimiter, $contents);
$counter = "";
$write = "";
$finalName = "";

foreach ( $splitcontents as $color )
{
    $counter = $counter+1;
    $first = strpos($color, "UTF-8:");
    $second = strpos($color, "TEL;");
    $name = substr($color, $first+6, $second-$first-7);

    $wordChunks = explode(";", $name);

    for($i = 0; $i < count($wordChunks); $i++)
    {
        if(trim($wordChunks[0])!="" || trim($wordChunks[1])!="" )
            $finalName .= " ".$wordChunks[$i];
    }

    $finalName= trim($finalName);   
    $fileName = $finalName.".vcf";

    $ourFileHandle = fopen($fileName, 'w') or die("can't open file");
    $stringData = "BEGIN:VCARD ".$color;
    fwrite($ourFileHandle, $stringData);
    fclose($ourFileHandle);

    $finalName = "";

}

这最终将生成上面给出的格式的 miltuple .vcf 文件......

我的问题:我所做的非常简单并且有漏洞 - 我们可以在 PHP 正则表达式中进行上述迭代和过滤吗?

这将是一个很好的学习?

4

2 回答 2

1
  1. 读取文件并获取上下文字符串

    NSData *String_Data = [NSData dataWithContentsOfFile:yourfilepath];
    NSString *theString = [[NSString alloc] initWithData:String_Data encoding:NSUTF8StringEncoding];
    
  2. 获取上下文中所有行的数组

    NSArray *lines = [theString componentsSeparatedByString:@"\n"];
    
  3. 在每一行中运行 for 循环:检查 BEGIN: 或 END: 的前缀

    NSString * stringForVCard=@"";
    for (int i=0; i<[lines count];i++){
    [stringForVCard stringByAppendingString:[lines objectAtIndex:i]
    if ([line hasPrefix:@"END"]) 
    [stringForVCard writeToFile:[NSString stringWithFormat:@"Make your own file path for each VCF"] atomically:TRUE encoding:NSUTF8StringEncoding error:nil ];
    //Empty the string
    stringForVCard=@"";}
    
于 2011-07-21T16:50:20.123 回答
0

文件结构:

索引.php

联系人.vcf

一个文件夹)

$filename = "contacts.vcf";
$file = file($filename);
$i=1;
$content = "";
foreach ( $file as $line )
{
    if($line == 'BEGIN:VCARD'."\r\n"){
        $content = "";
    }
    $content .= $line;
    if($line == 'END:VCARD'."\r\n"){
        $fileName = $i.".vcf";
        $ourFileHandle = fopen('a/'.$fileName, 'w') or die("can't open file");
        fwrite($ourFileHandle, $content);
        fclose($ourFileHandle);
        $i++;
        echo '<br>' . $i .'
';
    }
}
于 2014-06-06T09:38:43.103 回答