discuz字符串截取函数messagecutstr()详解
大家好,我是DZ起点网技术帮助(X.z)今天给大家分析下当我们在二次开发Discuz的时候,需要使用到调用简介的时候,可以使用Discuz自带的内容处理函数messagecutstr($str, $length, $dot)参数解释:
$str 要处理的字符串对象
$length 要保留的长度
$dot 超出部分用什么代替
举例:
<div>$str = 'DZ起点网就是好,学习Dsicuz少不了!';</div><div>$length = 8;</div><div>$dot = '+更多Discuz教程请百度搜索“DZ起点网”!';</div><div>
</div><div>echo messagecutstr($str, $length, $dot);</div>如图:
此时会输出
DZ起点网+更多Discuz教程请百度搜索“DZ起点网”!
如图:
特别声明,如果你使用messagecutstr()函数不起作用时,不放试试将
include_once libfile('function/post');这段代码引入,因为你messagecutstr()函数是在“function/post”中定义的!
messagecutstr()完整的函数定义如下:
function 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\]/is",
"/\(.*?)\[\/quote]/si",
$language['post_edit_regexp'],
"/\(.+?)\[\/url\]/si",
"/\[($bbcodesclear)=?.*?\].+?\[\/\\1\]/si",
"/\[($bbcodes)=?.*?\]/i",
"/\[\/($bbcodes)\]/i",
), array(
"$language",
'',
'',
'\\1',
'',
'',
'',
), $str));
if($length) {
$str = cutstr($str, $length, $dot);
}
$str = preg_replace($_G['cache']['smilies']['searcharray'], '', $str);
if($_G['setting']['plugins']['func']['discuzcode']) {
$_G['discuzcodemessage'] = & $str;
$param = func_get_args();
hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'messagecutstr'), 'discuzcode');
}
return trim($str);
}
页:
[1]