kigkonsult/phpvcardmgr

PHP 类包,用于管理 Vcard/Xcard/Jcard 信息

资助包维护!
其他

v1.0.9 2022-11-21 12:01 UTC

This package is auto-updated.

Last update: 2024-09-21 16:06:09 UTC


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 类结构的访问,以便任意使用,更多信息请参阅 PhpVcardMgrVcardProperties 文档。

用法

将输入字符串解析为 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 rfc6351PhpVcardMgrVcardProperties 文档。

为了支持开发、维护和测试过程,包括 PHPCompatibilityPHPStanphp-arguments-detector

支持

对于支持,请使用 github.com/PhpVcardMgr。除非赞助,否则非紧急支持问题将在适当时间内得到解决。

赞助

使用 paypal.me/kigkonsult 进行捐赠将受到赞赏。如需发票,请发送电子邮件。

安装

Composer

从命令行

composer require kigkonsult/phpvcardmgr

在你的 composer.json 中

{
    "require": {
        "kigkonsult/phpvcardmgr": "*"
    }
}
许可协议

PhpVcardMgr 采用 LGPLv3 许可协议。