Stars: 459
Forks: 180
Pull Requests: 102
Issues: 114
Watchers: 37
Last Updated: 2023-09-07 19:50:55
This vCard PHP library can easily parse or generate/export vCards as .vcf
License: MIT License
Languages: PHP
This VCard PHP library can generate a vCard with some data. When using an iOS device < iOS 8 it will export as a .ics file because iOS devices don't support the default .vcf files.
NOTE: We are working on a complete new version to work with vCard version 4.0, with extreme good code quality. Check out the new version
composer require jeroendesloovere/vcard
This will install the latest version of vcard with Composer
use JeroenDesloovere\VCard\VCard;
// define vcard
$vcard = new VCard();
// define variables
$lastname = 'Desloovere';
$firstname = 'Jeroen';
$additional = '';
$prefix = '';
$suffix = '';
// add personal data
$vcard->addName($lastname, $firstname, $additional, $prefix, $suffix);
// add work data
$vcard->addCompany('Siesqo');
$vcard->addJobtitle('Web Developer');
$vcard->addRole('Data Protection Officer');
$vcard->addEmail('[email protected]');
$vcard->addPhoneNumber(1234121212, 'PREF;WORK');
$vcard->addPhoneNumber(123456789, 'WORK');
$vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium');
$vcard->addLabel('street, worktown, workpostcode Belgium');
$vcard->addURL('http://www.jeroendesloovere.be');
$vcard->addPhoto(__DIR__ . '/landscape.jpeg');
// return vcard as a string
//return $vcard->getOutput();
// return vcard as a download
return $vcard->download();
// save vcard on disk
//$vcard->setSavePath('/path/to/directory');
//$vcard->save();
View all examples or check the VCard class.
The parser can either get passed a VCard string, like so:
// load VCardParser classes
use JeroenDesloovere\VCard\VCardParser;
$parser = new VCardParser($vcardString);
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.
Or by using a factory method with a file name:
$parser = VCardParser::parseFromFile('path/to/file.vcf');
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.
View the parsing example or check the the VCardParser class class.
Support for frameworks
I've created a Symfony Bundle: VCard Bundle
Usage in for example: Laravel
return Response::make(
$this->vcard->getOutput(),
200,
$this->vcard->getHeaders(true)
);
vendor/bin/phpunit tests
The class is well documented inline. If you use a decent IDE you'll see that each method is documented with PHPDoc.
Contributions are welcome and will be fully credited.
To add or update code
For bug reporting or code discussions.
More info on how to work with GitHub on help.github.com.
The module is licensed under MIT. In short, this license allows you to do everything as long as the copyright statement stays present.