kigkonsult / phpvcardmgr
PHP 类包,用于管理 Vcard/Xcard/Jcard 信息
v1.0.9
2022-11-21 12:01 UTC
Requires (Dev)
- ext-iconv: *
- ext-xdebug: *
- degraciamathieu/php-arguments-detector: >=0.5.0
- fakerphp/faker: dev-main
- kigkonsult/fakerlocreltypes: dev-main
- phpcompatibility/php-compatibility: >=9.3.5
- phpstan/phpstan: >=0.9.3
- phpunit/phpunit: >=6.5.13
- squizlabs/php_codesniffer: >=3.5.5
README
是 PHP 类包,用于管理
Vcard / Xcard / Jcard 信息
支持
-
vCard 格式规范,4.0,rfc6350,格式 / 解析
-
xCard:vCard XML 表示,rfc6351,格式 / 解析
-
jCard:vCard 的 JSON 格式,4.0,rfc7095,格式 / 解析
-
vCard MIME 目录配置文件,Vcard 3.0,rfc2426
- 将 Vcard 3.0 从 4.0 结构格式化
- 将 Vcard 3.0 解析到 4.0 结构
提供
- 对 Vcard / 属性 4.0 类结构的访问,以便任意使用,更多信息请参阅 PhpVcardMgr,Vcard 或 Properties 文档。
用法
将输入字符串解析为 vCards
<?php namspace Kigkonsult\PhpVcardMgr; // load an input string $inputString = .... // parse Vcard 4.0 input string $vCards = PhpVcardMgr::factory()->vCard4Parse( $inputString )->getVCards(); // parse Vcard 3.0 input string // $vCards = PhpVcardMgr::factory()->vCard3Parse( $inputString )->getVCards(); // parse Jcard json input string // $vCards = PhpVcardMgr::factory()->jCardParse( $inputString )->getVCards(); // parse Xcard XML input string // $vCards = PhpVcardMgr::factory()->xCardParse( $inputString )->getVCards(); // examine each vcard content foreach( $vCards as $vCard) { if( $vCard->hasProperty( PhpVcardMgr::N )) { // Exactly one instance per vCard MAY be present $property = $vCard->getProperty( PhpVcardMgr::N ); $name = $property->isGroupSet() // string ? $property->getGroupPropName() : $property->getPropName(); $parameters = $property->getParameters(); // array $valueType = $property->getValueType(); // string // five-element array : surname/given/additional/prefix/suffix $value = $property->getValue(); ... } // end if if( $vCard->hasProperty( PhpVcardMgr::ADR )) { // One or more instances per vCard MAY be present foreach( $vCard->getProperty( PhpVcardMgr::ADR ) as $property ) { $name = $property->isGroupSet() // string ? $property->getGroupPropName() : $property->getPropName(); $parameters = $property->getParameters(); // array $valueType = $property->getValueType(); // string // seven-element array : pobox/ext/street/locality/region/code/country $value = $property->getValue(); ... } // end foreach } // end if ... } // end foreach
将 vCards 格式化为 Vcard / Jcard / Xcard 字符串
<?php namspace Kigkonsult\PhpVcardMgr; use Kigkonsult\PhpVcardMgr\Property\Adr; use Kigkonsult\PhpVcardMgr\Property\Email; use Kigkonsult\PhpVcardMgr\Property\N; // load a Vcard $vCard = Vcard::factory() ->addProperty( Adr::factory( <value> [, <parameters> [, <valueType> [, <group> ]]] ) ->addProperty( N::factory( <value> [, <parameters> [, <valueType> [, <group> ]]] ) ->addProperty( Email::factory( <value> [, <parameters> [, <valueType> [, <group> ]]] ); $phpVcardMgr = PhpVcardMgr::factory()->addVCard( $vCard ); // format Vcard 4.0 output string $outputString = $phpVcardMgr->vCard4Format(); // format Vcard 3.0 output string // $outputString = $phpVcardMgr->vCard3Format(); // format Jcard json output string // $outputString = $phpVcardMgr->jCardFormat(); // format Xcard XML output string // $outputString = $phpVcardMgr->xCardFormat();
有关详细信息,请查阅 Vcard4 rfc6350,Vcard3 rfc2426,Jcard rfc7095,Xcard rfc6351 或 PhpVcardMgr,Vcard 或 Properties 文档。
为了支持开发、维护和测试过程,包括 PHPCompatibility,PHPStan 和 php-arguments-detector。
支持
对于支持,请使用 github.com/PhpVcardMgr。除非赞助,否则非紧急支持问题将在适当时间内得到解决。
赞助
使用 paypal.me/kigkonsult 进行捐赠将受到赞赏。如需发票,请发送电子邮件。
安装
Composer
从命令行
composer require kigkonsult/phpvcardmgr
在你的 composer.json 中
{
"require": {
"kigkonsult/phpvcardmgr": "*"
}
}
许可协议
PhpVcardMgr 采用 LGPLv3 许可协议。