Discuz!教程之帖子摘要(简介)截取函数messagecutstr()详解

来源:互联网 发布:海湾crt软件下载 编辑:程序博客网 时间:2024/06/12 05:38

当我们在二次开发Discuz的时候,经常需要调用帖子的摘要或者简介,这里可以使用Discuz自带的内容处理函数messagecutstr()来处理:
函数定义位置:\source\function\function_post.php
使用前请添加 include_once libfile('function/post');
来引入函数
messagecutstr($str, $length, $dot)
参数解释:
$str           要处理的字符串对象
$length     要保留的长度
$dot         超出部分用什么代替


该函数具体定义如下:
f

unction messagecutstr($str, $length = 0, $dot = ' ...') {global $_G;$str = messagesafeclear($str);$sppos = strpos($str, chr(0).chr(0).chr(0));if($sppos !== false) {$str = substr($str, 0, $sppos);}$language = lang('forum/misc');loadcache(array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes', 'domainwhitelist'));$bbcodes = 'b|i|u|p|color|size|font|align|list|indent|float';$bbcodesclear = 'email|code|free|table|tr|td|img|swf|flash|attach|media|audio|groupid|payto'.($_G['cache']['bbcodes_display'][$_G['groupid']] ? '|'.implode('|', array_keys($_G['cache']['bbcodes_display'][$_G['groupid']])) : '');$str = strip_tags(preg_replace(array("/\[hide=?\d*\](.*?)\[\/hide\]/is","/\[quote](.*?)\[\/quote]/si",$language['post_edit_regexp'],"/\[url=?.*?\](.+?)\[\/url\]/si","/\[($bbcodesclear)=?.*?\].+?\[\/\\1\]/si","/\[($bbcodes)=?.*?\]/i","/\[\/($bbcodes)\]/i",), array("[b]$language[post_hidden][/b]",'','','\\1','','','',), $str));if($length) {$str = cutstr($str, $length, $dot);}$str = preg_replace($_G['cache']['smilies']['searcharray'], '', $str);if($_G['setting']['plugins']['func'][HOOKTYPE]['discuzcode']) {$_G['discuzcodemessage'] = & $str;$param = func_get_args();hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'messagecutstr'), 'discuzcode');}return trim($str);}

阅读全文
0 0
原创粉丝点击