开发者

iCalendar TEXT Data Type - Preparing Values with PHP

开发者 https://www.devze.com 2023-03-09 19:02 出处:网络
I am providing download links for my application\'s events.One piece I am missing is how to prepare values for the TEXT data type.Specifically, the value that will end up with the DESCRIPTION property

I am providing download links for my application's events. One piece I am missing is how to prepare values for the TEXT data type. Specifically, the value that will end up with the DESCRIPTION property has HTML. I have downloaded several PHP projects related to the iCalendar RFC, but I haven't tracked down a good snippet of code for preparing TEXT values.


I found a blog entry that was only available in Google Cache that had line wrapping, and I noticed that generating an ICS file from Outlook 2010 has line wrapping, but I'm going to leave it alone for now and come back to it if there's a problem.

I also decided to add support for the different possible line endings:

/**
 * Prepare data for a TEXT开发者_如何学JAVA 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);
}


Note the mixture of single and double quotes for the line break (Double quotes interpret the line breaks whereas single ones don't)

$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);

For sure this can be done with a probably easier RegExp..

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号