Home  >  Article  >  Backend Development  >  php smarty function extension_PHP tutorial

php smarty function extension_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:39:39823browse

中文截取 modifier.cn_truncate.php

复制代码 代码如下:

function smarty_modifier_cn_truncate($string, $strlen = 20, $etc = '...',
$keep_first_style = false)
{
$strlen = $strlen*2;
$string = trim($string);
if ( strlen($string) <= $strlen ) {
return $string;
}
$str = strip_tags($string);
$j = 0;
for($i=0;$i<$strlen;$i++) {
if(ord(substr($str,$i,1))>0xa0) $j++;
}
if($j%2!=0) $strlen++;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen ) {$rstr .= $etc;}
if ( $keep_first_style == true && ereg('^<(.*)>$',$string) ) {
if ( strlen($str) <= $strlen ) {
return $string;
}
$start_pos = strpos($string,substr($str,0,4));
$end_pos = strpos($string,substr($str,-4));
$end_pos = $end_pos+4;
$rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string));
}
return $rstr;
}

modifier.ubb.php
复制代码 代码如下:

function smarty_modifier_ubb($str) {
$ubbs['quote'][0] = '/[quote](.*?)[/quote]/s';
$ubbs['quote'][1] = '
引用:
1
';
$ubbs['b'][0] = '/[b](.*?)[/b]/s';
$ubbs['b'][1] = '1';
$ubbs['i'][0] = '/[i](.*?)[/i]/s';
$ubbs['i'][1] = '1';
$ubbs['u'][0] = '/[u](.*?)[/u]/s';
$ubbs['u'][1] = '1';
$ubbs['li'][0] = '/[li](.*?)[/li]/s';
$ubbs['li'][1] = '
  • 1
  • ';
    $ubbs['img'][0] = '/[img](.*?)[/img]/s';
    $ubbs['img'][1] = '';
    $ubbs['img2'][0] = '/[img=([^,]+),([^]]+)](.*?)[/img]/s';
    $ubbs['img2'][1] = '';
    $ubbs['url'][0] = '/[url](.*?)[/url]/s';
    $ubbs['url'][1] = '1';
    $ubbs['url2'][0] = '/[url=([^]]+)](.*?)[/url]/s';
    $ubbs['url2'][1] = '2';
    $ubbs['email'][0] = '/[email=([^]]+)](.*?)[/email]/s';
    $ubbs['email'][1] = '2';
    $ubbs['qq'][0] = '/[qq]([0-9]{5,10})[/qq]/s';
    $ubbs['qq'][1] = '点击这里给我发消息';
    $ubbs['color'][0] = '/[color=([^]]+)](.*?)[/color]/s';
    $ubbs['color'][1] = '2';
    $ubbs['font'][0] = '/[font=([^]]+)](.*?)[/font]/s';
    $ubbs['font'][1] = '2';
    $ubbs['size'][0] = '/[size=([0-9]+)](.*?)[/size]/s';
    $ubbs['size'][1] = '2';
    $ubbs['sizept'][0] = '/[size=([0-9,pt]+)](.*?)[/size]/s';
    $ubbs['sizept'][1] = '2';
    $ubbs['align'][0] = '/[align=([^]]+)](.*?)[/align]/s';
    $ubbs['align'][1] = '
    2';
    $ubbs['media'][0] = '/[media](.*?)[/media]/s';
    $ubbs['media'][1] = '';
    $ubbs['list'][0] = '/[list](.*?)[/list]/s';
    $ubbs['list'][1] = '
      1
    ';
    $ubbs['list2'][0] = '/[list=([0-9]+)](.*?)[/list]/s';
    $ubbs['list2'][1] = '
      2
    ';
    $ubbs['indent'][0] = '/[indent](.*?)[/indent]/s';
    $ubbs['indent'][1] = '
    1';
    $ubbs['table'][0] = '/[table([=,0-9,%]*)](.*?)[/table]/s';
    $ubbs['table'][1] = '2';
    $ubbs['tr'][0] = '/[tr](.*?)[/tr]/s';
    $ubbs['tr'][1] = '1';
    $ubbs['td'][0] = '/[td](.*?)[/td]/s';
    $ubbs['td'][1] = '
     1';
    $ubbs['td2'][0] = '/[td([^(]|[)]+)](.*?)[/td]/s';
    $ubbs['td2'][1] = '
     2';
    $str = str_replace('[*]','
  • ',$str);
    foreach ($ubbs as $ubb){
    $str = ubb_replace($ubb[0],$ubb[1],$str);
    }
    return $str;
    }
    function ubb_replace($pattern,$replacement,$str){
    do {
    $str_ret = $str;
    $str = preg_replace($pattern,$replacement,$str);
    }while($$str);
    return $str_ret;
    }
    ?>

    编码 modifier.unescape.php
    复制代码 代码如下:

    function smarty_modifier_unescape($str)
    {
    $str = rawurldecode($str);
    preg_match_all("/(?:%u.{4})|[^%]+/",$str,$r);
    $ar = $r[0];
    foreach($ar as $k=>$v) {
    if(substr($v,0,2) == "%u" && strlen($v) == 6)
    $ar[$k] = iconv("UCS-2","GB2312",@pack("H4",substr($v,-4)));
    }
    return join("",$ar);
    }

    www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321504.htmlTechArticleChinese intercept modifier.cn_truncate.php Copy the code as follows: function smarty_modifier_cn_truncate($string, $strlen = 20, $ etc = '...', $keep_first_style = false) { $strlen = $s...
    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn