iCalendar TEXT数据类型 - 使用PHP准备值

时间:2011-05-31 17:54:46

标签: php parsing icalendar

我正在为我的应用程序事件提供下载链接。我遗失的一件事是如何准备the TEXT data type的价值观。具体而言,以DESCRIPTION属性结束的值具有HTML。我已经下载了几个与iCalendar RFC相关的PHP项目,但是我没有找到准备好TEXT值的一小段代码。


我发现blog entry只有available in Google Cache有换行符号,我注意到从Outlook 2010生成ICS文件有换行符,但我现在暂时不管它如果出现问题,请回过头来。

我还决定添加对不同可能的行结尾的支持:

/**
 * Prepare data for a TEXT field
 *
 * @param string $text
 * @return string
 */
public static function prepareText($text)
{
    $search = array('\\', ';', ',', "\r\n", "\n", "\r");
    $replace = array('\\\\', '\;', '\,', '\n', '\n', '\n');
    return str_replace($search, $replace, $text);
}

1 个答案:

答案 0 :(得分:1)

注意换行符的单引号和双引号的混合(双引号解释换行符,而单引号则不解释)

$text = 'Hello, World!
This is in a new line; after a semicolon/comma';
$search = array('/',';',',',"\N","\n");
$replace = array('\/','\;','\,','\n','\n');
$description = str_replace($search,$replace,$text);

print_r($description);

当然,这可以通过一个可能更容易的RegExp来完成..