PHP vCard Library: Import and export contacts in vCard format
This package can be used to import and export contact lists in vCard format.
It can create a new contact list from scratch and export it in vCard format - .vcf - compliant
with the version 3.0 of the format specification (RFC 2426).
The package can also import an existing VCF file and makes it available to the PHP applications
as an iterator that returns the details of each contact that was found in the vCard file. The
package supports vCard format version 2.1 and 3.0.
New in Version 1.1.0
-
Support of multiple homepages per contact
-
new method `VCard::listContacts() : array`
Installation
You can download the Latest release version from PHPClasses.org
Usage
Import VCF
// create object and read file
$oVCard = new VCard();
$iContactCount = $oVCard->read($strFilename);
for ($i = 0; $i < $iContactCount; $i++) {
// iterate to importetd contacts
$oContact = $oVCard->getContact($i);
$strName = $oContact->getName();
// ... read more properties
// iterating through all addresses
$iCount = $oContact->getAddressCount();
for ($j = 0; $j < $iCount; $j++) {
$oAddress = $oContact->getAddress($j);
$strStr = $oAddress->getStr();
// ... read more properties
}
// phonenumbers
$iCount = $oContact->getPhoneCount();
for ($j = 0; $j < $iCount; $j++) {
$aPhone = $oContact->getPhone($j);
$strType = $aPhone['strType'];
$strPhone = $aPhone['strPhone'];
}
$iCount = $oContact->getEMailCount();
for ($j = 0; $j < $iCount; $j++) {
$strMail = $oContact->getEMail($j);
}
}
> Note:
> If data to be exported comes from a database/table with collation latinX_yyyyy, the character
> encoding detection order from PHP may have to be set with
> mb_detect_order('UTF-8, Windwos-1252, ISO-8859-XX')
before using the class (replace X,y to fit your encoding).
Export VCF
// create object
$oVCard = new VCard();
// just create new contact
$oContact = new VCardContact();
$oContact->setName('von Flake', 'Wiki');
$oContact->setOrganisation('Company 4711');
// HOME address
$oAddress = new VCardAddress();
$oAddress->setType(VCard::HOME);
$oAddress->setStr('Bärenweg. 4');
// ... set more properties of oAddress
$oContact->addAddress($oAddress, true);
// WORK address
$oAddress = new VCardAddress();
$oAddress->setType('WORK');
$oAddress->setStr('Companystr. 8');
// ... set more properties of oAddress
$oContact->addAddress($oAddress, false);
// phones
$oContact->addPhone('01234 5678', VCard::HOME, false);
$oContact->addPhone('0123 89765456', VCard::CELL, true);
$oContact->addPhone('01234 98356', VCard::WORK, false);
// e-mails
$oContact->addEMail('private@web.de', true);
$oContact->addEMail('president@club.de', false);
$oContact->addEMail('work@company.de', false);
// insert contact
$oVCard->addContact($oContact);
// ... may continue with further contacts
// and write to file
$oVCard->write('test.vcf', false);