ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/ebihara/prj_pnebiz/lib/smarty_plugins/modifier.t_truncate.php @ 557

Last change on this file since 557 was 557, checked in by ebihara, 14 years ago

create prj_pnebiz

File size: 934 bytes
Line 
1<?php
2/**
3 * @license  GNU Lesser General Public License (LGPL)
4 * @see      Smarty/plugins/modifier.truncate.php
5 */
6
7/**
8 * Smarty t_truncate modifier plugin
9 *
10 * @param string $string
11 * @param int    $length
12 * @param string $etc
13 * @param bool   $break_words
14 * @return string
15 */
16function smarty_modifier_t_truncate($string, $length = 80, $etc = '...',
17                                  $break_words = true)
18{
19    if ($length == 0)
20        return '';
21
22    $from = array('&amp;', '&lt;', '&gt;', '&quot;', '&#039;');
23    $to   = array('&', '<', '>', '"', "'");
24    $string = str_replace($from, $to, $string);
25
26    if (strlen($string) > $length) {
27        $length -= strlen($etc);
28        if (!$break_words)
29            $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
30
31        $string = mb_strimwidth($string, 0, $length) . $etc;
32    }
33    return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
34}
35
36?>
Note: See TracBrowser for help on using the repository browser.