如何解决iCalendar TEXT数据类型-使用PHP准备值
|| 我正在提供应用程序事件的下载链接。我缺少的一件事情是如何为TEXT
数据类型准备值。具体来说,以DESCRIPTION
属性结尾的值具有HTML。我已经下载了几个与iCalendar RFC相关的PHP项目,但是我没有找到准备ѭ0ѭ值的良好代码段。
我找到了一个博客条目,该条目仅在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\');
return str_replace($search,$replace,$text);
}
解决方法
请注意,单引号和双引号混合使用换行符(双引号解释换行符,单引号则不行)
$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来完成。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。