• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php smarty函数扩展

php 搞代码 4年前 (2022-01-01) 46次浏览 已收录 0个评论

扩展函数放到 */Smarty/libs/plugins目录下,文件命名格式 modifier.xxxx.php,函数名格式function smarty_modifier_xxxx

中文截取 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

代码如下:
<?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=([^\]]+)\](.*?)\[\/c来源gao@daima#com搞(%代@#码网olor\]/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\]/s’;
      $ubbs[‘list’][1] = ‘

        \1

      ‘;
      $ubbs[‘list2’][0] = ‘/\

        +)\](.*?)\[\/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);
        }

        以上就是php smarty函数扩展的详细内容,更多请关注gaodaima搞代码网其它相关文章!


        搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
        转载请注明原文链接:php smarty函数扩展

        喜欢 (0)
        [搞代码]
        分享 (0)
        发表我的评论
        取消评论

        表情 贴图 加粗 删除线 居中 斜体 签到

        Hi,您需要填写昵称和邮箱!

        • 昵称 (必填)
        • 邮箱 (必填)
        • 网址