Changeset 423 for branches/1.1dev/lib
- Timestamp:
- Aug 13, 2013 11:52:52 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.1dev/lib/Utilities.inc.php
r401 r423 154 154 * @since 29 Mar 2006 13:48:49 155 155 */ 156 function truncate($str, $len, $where='middle') 157 { 156 function truncate($str, $len, $where='end', $delim='âŠ') 157 { 158 if ($len <= 3 || mb_strlen($str) <= 3) { 159 return ''; 160 } 158 161 $part1 = floor(($len - 3) / 2); 159 162 $part2 = ceil(($len - 3) / 2); 160 163 switch ($where) { 161 164 case 'start' : 162 return preg_replace(array(sprintf('/^.{4,}(.{%s})$/ ', $part1 + $part2), '/\s*\.{3,}\s*/'), array('...$1', '...'), $str);165 return preg_replace(array(sprintf('/^.{4,}(.{%s})$/sU', $part1 + $part2), '/\s*\.{3,}\s*/sU'), array($delim . '$1', $delim), $str); 163 166 break; 164 167 default : 165 168 case 'middle' : 166 return preg_replace(array(sprintf('/^(.{%s}).{4,}(.{%s})$/ ', $part1, $part2), '/\s*\.{3,}\s*/'), array('$1...$2', '...'), $str);169 return preg_replace(array(sprintf('/^(.{%s}).{4,}(.{%s})$/sU', $part1, $part2), '/\s*\.{3,}\s*/sU'), array('$1' . $delim . '$2', $delim), $str); 167 170 break; 168 171 case 'end' : 169 return preg_replace(array(sprintf('/^(.{%s}).{4,}$/ ', $part1 + $part2), '/\s*\.{3,}\s*/'), array('$1...', '...'), $str);170 break; 172 return preg_replace(array(sprintf('/^(.{%s}).{4,}$/sU', $part1 + $part2), '/\s*\.{3,}\s*/sU'), array('$1' . $delim, $delim), $str); 173 break; 171 174 } 172 175 }
Note: See TracChangeset
for help on using the changeset viewer.