om/icalparser

简单的iCal解析器

v3.1.0 2023-12-12 09:47 UTC

README

Packagist Version Packagist Downloads Packagist License Packagist PHP Version PHP Tests

PHP iCal解析器

互联网日历解析器 rfc2445 或iCal解析器是一个简单的PHP类,用于将格式解析为数组。

"Buy Me A Coffee"

如何安装

推荐的方式是通过Composer安装

composer require om/icalparser

使用方法和示例

<?php
use om\IcalParser;
require_once '../vendor/autoload.php';

$cal = new IcalParser();
$results = $cal->parseFile(
	'https://www.google.com/calendar/ical/cs.czech%23holiday%40group.v.calendar.google.com/public/basic.ics'
);

foreach ($cal->getEvents()->sorted() as $event) {
	printf('%s - %s' . PHP_EOL, $event['DTSTART']->format('j.n.Y'), $event['SUMMARY']);
	
}

每个事件的每个属性都可以使用属性名(大写字母)作为键来访问。有一些特殊情况

  • 有多个参会者且参数不同:使用ATTENDEES作为键来获取以下方案中的所有参会者
[
	[
		'ROLE' => 'REQ-PARTICIPANT',
		'PARTSTAT' => 'NEEDS-ACTION',
		'CN' => 'John Doe',
		'VALUE' => 'mailto:john.doe@example.org'
	],
	[
		'ROLE' => 'REQ-PARTICIPANT',
		'PARTSTAT' => 'NEEDS-ACTION',
		'CN' => 'Test Example',
		'VALUE' => 'mailto:test@example.org'
	]
]
  • 组织者姓名:组织者属性的CN参数可以通过ORGANIZER-CN键获取

您可以使用以下方法使用内置的PHP内置web服务器运行示例

php -S localhost:8000 -t example

要求

  • PHP 8.1+

运行测试

使用Nette Tester运行iCal解析器测试。可以通过composer调用测试。

composer update
composer test