| | <?php |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | namespace Eluceo\iCal\Util; |
| |
|
| | class ComponentUtil |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public static function fold($string) |
| | { |
| | $lines = []; |
| |
|
| | if (function_exists('mb_strcut')) { |
| | while (strlen($string) > 0) { |
| | if (strlen($string) > 75) { |
| | $lines[] = mb_strcut($string, 0, 75, 'utf-8'); |
| | $string = ' ' . mb_strcut($string, 75, strlen($string), 'utf-8'); |
| | } else { |
| | $lines[] = $string; |
| | $string = ''; |
| | break; |
| | } |
| | } |
| | } else { |
| | $array = preg_split('/(?<!^)(?!$)/u', $string); |
| | $line = ''; |
| | $lineNo = 0; |
| | foreach ($array as $char) { |
| | $charLen = strlen($char); |
| | $lineLen = strlen($line); |
| | if ($lineLen + $charLen > 75) { |
| | $line = ' ' . $char; |
| | ++$lineNo; |
| | } else { |
| | $line .= $char; |
| | } |
| | $lines[$lineNo] = $line; |
| | } |
| | } |
| |
|
| | return $lines; |
| | } |
| | } |
| |
|