Blame view
sources/apps/contacts/lib/vobject/stringproperty.php
1.87 KB
|
d1bafeea1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php /** * ownCloud - VObject String Property * * This class adds escaping/unescaping of simple string properties. * * @author Thomas Tanghus * @author Evert Pot (http://www.rooftopsolutions.nl/) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\Contacts\VObject; use Sabre\VObject; /** |
|
6d9380f96
|
30 |
* This class overrides \Sabre\VObject\Property::serialize() to properly |
|
d1bafeea1
|
31 32 33 34 35 |
* escape commas and semi-colons in string properties.
*/
class StringProperty extends VObject\Property {
/**
|
|
6d9380f96
|
36 |
* Turns the object back into a serialized clob. |
|
d1bafeea1
|
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
*
* @return string
*/
public function serialize() {
$str = $this->name;
if ($this->group) {
$str = $this->group . '.' . $this->name;
}
foreach($this->parameters as $param) {
$str.=';' . $param->serialize();
}
$src = array(
'\\',
"
",
';',
',',
);
$out = array(
'\\\\',
'
',
'\;',
'\,',
);
$value = strtr($this->value, array('\,' => ',', '\;' => ';', '\\\\' => '\\'));
$str.=':' . str_replace($src, $out, $value);
$out = '';
while(strlen($str) > 0) {
if (strlen($str) > 75) {
$out .= mb_strcut($str, 0, 75, 'utf-8') . "\r
";
$str = ' ' . mb_strcut($str, 75, strlen($str), 'utf-8');
} else {
$out .= $str . "\r
";
$str = '';
break;
}
}
return $out;
}
}
|