模块二开mokuai

TSCMS 网站常用函数大全

时间:2026-07-27 22:54 阅读:437 来源:腾石科技

一、安全过滤类

safe_replace($string)

安全过滤函数,替换特殊字符(空格、引号、尖括号、反斜杠等)。用于后台接收用户输入时。返回过滤后的字符串。

$safeStr = safe_replace($input);

remove_xss($html)

XSS 过滤函数,清除 JavaScript、VBScript、on事件等危险代码。用于富文本内容过滤。

$clean = remove_xss($content);

二、字符串处理类

str_cut($string, $length, $dot='...', $charset='utf-8')

UTF-8 安全截断字符串,自动追加后缀。支持 UTF-8 和 GBK 编码。

{str_cut($vo.title, 30)}       <!-- 模板中使用 -->
$short = str_cut($text, 100);   <!-- PHP中使用 -->

getStrlen($str)

获取字符串长度(UTF-8 安全)。如果传入数组则返回数组长度。

highlight($content, $keyword, $length=60)

搜索结果高亮显示,将关键词用红色字体标记。

{highlight($vo.title, $keyword)}  <!-- 模板中使用 -->

random($length, $chars='0123456789')

产指定长度的随机字符串,默认数字,可指定字符集。

$code = random(6, '0123456789');     // 6位随机数字

create_randomstr($lenth=6)

生成安全的随机字符串(字母+数字,不含0/o)。用于密码加密盐值。

parse_attr($value)

配置值解析成数组。支持换行、逗号、分号分隔,格式 键:值 可转换为关联数组。

// "男:1\n女:2" → ['男'=>'1', '女'=>'2']
$options = parse_attr($configStr);

三、类型转换类

string2array($data)

将字符串转换为数组。支持 array() 格式字符串和 JSON 字符串。

$arr = string2array($settingStr);

array2string($data, $isformdata=1)

将数组转换为 JSON 字符串(addslashes 处理)。

array2json($array)

数组转 JSON(中文不转码 Unicode)。


二、内容与栏目类

getCategory($catid, $field='', $newCache=false)

获取栏目信息。返回栏目数组或指定字段的值。

$cat = getCategory(1);              // 全部信息
$name = getCategory(1, 'catname');  // 只取栏目名
$url = category(1);                 // 快捷获取URL

category($catid, $field='url')

快速获取栏目信息。默认获取 URL。

categoryCache()

获取栏目全部缓存(以 catid 为键的数组)。单例模式。

$cats = categoryCache();
foreach ($cats as $c) {
    echo $c['catname'];
}

getChildId($catid)

获取指定栏目的所有子栏目ID列表(逗号分隔字符串)。

getParentId($catid)

获取指定栏目的所有父栏目ID列表(逗号分隔字符串)。

getArticle($catid, $id, $modelid=0, $moreinfo=0)

获取文章详细信息,支持联查副表。

$article = getArticle(1, 5, 0, 1);

getArticleByIds($ids, $catid=0, $modelid=0, $moreinfo=0)

通过 ID 批量获取文章。支持逗号分隔字符串或数组。

$list = getArticleByIds('1,3,5', 0, 2, 1);

getContentUrl($catid, $id)

获取文章 URL。

getpage($catid, $field='*', $ishtml='1')

获取单页面数据。

$content = getpage(5, 'content');  // 获取catid=5的单页面内容

getUrlrule($module, $type)

获取 URL 规则。type: 0=栏目, 1=内容, 2=单页, 3=标签。


三、URL 生成类

buildCatUrl($catid, $url='', $suffix=true, $domain=false, $page=0)

生成栏目 URL(支持 URL 规则)。

$url = buildCatUrl(1);        // 栏目URL
$url = buildCatUrl(1, '', true, false, 2);  // 分页URL

buildContentUrl($catid, $id, $suffix=true, $domain=false)

生成内容详情 URL(支持 URL 规则和时间变量)。

$url = buildContentUrl(1, 5);

buildTagUrl($tagid, $tag=[])

生成标签详情页 URL。

catpos($catid, $symbol=' > ')

生成栏目面包屑导航,返回 HTML 格式。

位置:{catpos($catid)}  <!-- 模板中输出面包屑 -->

siteurl($full=true)

获取站点 URL。

getDomain($port=0)

获取当前站点域名(含协议)。


四、SEO 类

seo($catid='', $title='', $description='', $keyword='')

生成 SEO 信息数组,用于页面标题、关键词、描述。优先级:传入值 > 栏目设置 > 站点设置。

{$SEO = seo($catid, $title, $description, $keyword)}
<title>{$SEO.title}</title>
<meta name="keywords" content="{$SEO.keyword}">
<meta name="description" content="{$SEO.description}">

五、图片与文件处理类

getImg($str, $num=1)

从 HTML 内容中提取第 N 张图片的路径。默认提取第一张。

{getImg($content)}  <!-- 提取第一张图片路径 -->

thumb($filename, $width, $height=null, $type=3)

自动生成指定尺寸的缩略图,返回缩略图路径。type 类型:1=等比例, 2=填充, 3=居中裁剪, 4=左上裁剪, 5=右下裁剪, 6=固定尺寸。

<img src="{thumb($vo.thumb, 200, 150)}">
<img src="{thumb($vo.image, 300)}">  <!-- 等比缩放高度自动 -->

saveRemoteImages($content, $saveDir='upload/image/')

下载内容中的远程图片到本地,并替换 HTML 中的 src 路径。自动写入附件表。

fetchRemoteImage($url)

通过 cURL 获取远程图片内容(二进制数据)。

getFile($id, $name='')

获取附件信息。


六、安全与验证类

check_mobile($mobile)

验证手机号格式是否正确。返回 true/false。

check_email($email)

验证邮箱格式是否正确。

check_password($password, $min, $max)

验证密码长度是否符合要求。

check_tel($tel)

验证固定电话格式。

check_url($url)

校验是否为合法网址。

ip()

获取客户端真实 IP 地址。

in_wechat()

判断当前访问是否来自微信内置浏览器。


七、加密与认证类

password($password, $encrypt='')

密码加密。不传 encrypt 时返回 ['password'=>..., 'encrypt'=>...];传 encrypt 时返回字符串。

$pwd = password('123456');
// $pwd['password'] 和 $pwd['encrypt']

$check = password('123456', $storedEncrypt);
// 对比 $check === $storedPassword

data_auth_sign($data)

数组数据签名认证。对数组排序后用 http_build_query + SHA1 生成签名,用于 Session 防篡改。

is_admin_login()

检测管理员是否登录。返回管理员ID(0=未登录)。

is_user_login()

检测前台会员是否登录。返回会员ID(0=未登录)。


八、验证码类(短信/邮箱)

sendEmailCode($email, $code=null, $event='default')

发送邮箱验证码。自动从配置读取 SMTP 设置。

checkEms($email, $code, $event='default')

校验邮箱验证码。返回 ['code'=>1/0, 'msg'=>'...']。验证通过后自动删除记录。

sendsms($key, $mobile, $code='', $event='default')

发送短信验证码。需先安装并配置短信模块。

checkSms($mobile, $code, $event='default')

校验短信验证码。支持频率限制和错误次数限制。

send_email($email, $title, $content, $config=null)

使用 PHPMailer 发送邮件。config 不传则自动读取系统配置。


九、数组操作类

list_to_tree($list, $pk='id', $pid='pid', $child='children', $root=0)

把平铺的数据集转换成树形结构(用于无限级分类)。

$tree = list_to_tree($categoryList, 'catid', 'parentid', 'children', 0);

tree_to_list($tree, $child='children', $order='id', &$list=[])

将树形结构还原成平铺列表。

arraySort($array, $keys, $sort='asc')

按指定字段对数组排序(asc/desc)。

change_array_key($array, $name)

重置数组键值,指定某列作为新键值。


十、系统与缓存类

getConfig($key='')

获取系统配置。key 为空返回全部配置,指定 key 返回单项。

$siteName = getConfig('site_name');  // 站点名称
$allConfig = getConfig();            // 全部配置

clear_cache($directory=null)

清除系统缓存(runtime/cache 目录)。

module_exists($module)

判断模块是否已安装。

if (module_exists('pay')) { /* 支付功能可用 */ }

table_exists($table)

判断数据表是否存在(不传前缀)。

get_table_fields($table)

获取表字段列表(有缓存)。


十一、表单与钩子类

buildForm($formid, $options=[], $onlyForm=1)

自动生成表单 HTML。支持验证码、未登录检测、文件上传。$options 支持 class、btntext、show_tips。

{$form = buildForm(5)}
<div class="form-box">{$form}</div>

build_form_field($field, $showTips=true)

渲染单个字段的 HTML。支持 text/textarea/radio/select/checkbox/image/file 等类型。

formUrl($formid)

获取表单提交地址。

hook($tag, $params=null, $once=false, $return=false)

触发业务钩子。$once=true 只取一个有效返回值;$return=true 返回钩子返回值。


十二、其他工具类

showmessage($msg='操作成功', $url='', $time=3, $vars=[])

跳转提示页面。模板文件为 templates/{style}/content/msg.html

showmessage('操作成功', url('index'), 3);

export_excel($data, $title)

数组导出 XLS 格式 Excel 文件。

sizecount($filesize, $precision=2)

转换字节数为可读单位(B/KB/MB/GB/TB)。

format_bytes($size, $delimiter='')

格式化字节大小,同上。

insert_log($info, $module='admin', $action='')

保存后台用户操作日志。

insert_user_log($info, $module='admin', $action='')

保存前台用户操作日志。

_static($path='', $type='', $debug=0)

静态资源快捷调用,自动补全路径并添加版本号。

<link rel="stylesheet" href="{_static('css/style.css')}">
<script src="{_static('js/app.js')}"></script>

https_request($url, $data=null)

HTTP/HTTPS 请求(cURL 封装)。data 为空时发送 GET 请求,否则 POST。

filter($catid, $field, $total='全部', $extData='')

获取栏目筛选字段的选项(支持 radio/select/checkbox/number 类型),自动维护 URL 参数。

{foreach filter($catid, 'color') as $opt}
  <a href="{$opt.url}" class="{if $opt.active}active{/if}">{$opt.title}</a>
{/foreach}

layuiTimeformat($format)

将 PHP 时间格式(如 Y-m-d H:i:s)转换为 layui 时间格式(如 y-MM-dd HH:mm:ss)。

template_style($siteid=1)

获取当前模板风格名称(如 'default')。

template_list($module='', $name='', $siteid='')

获取模板文件列表。

getSubmenu($menuid)

获取后台子菜单列表。

getBrothermenu($menuid)

获取后台兄弟菜单列表。

getMenuidByModule($module, $controller, $action)

通过模块/控制器/方法获取菜单ID。


十三、文件目录操作

位于 application/dir.func.php

函数说明
dir_path($path)转化反斜杠为正斜杠,末尾加/
dir_create($path, $mode=0777)递归创建目录
dir_copy($fromdir, $todir)递归复制目录
dir_list($path, $exts='', $list=[])列出目录下所有文件
dir_delete($dir)递归删除目录
dir_tree($dir, $parentid=0, $dirs=[])目录树列表

十四、API 辅助函数

位于 application/api/api_helper.php

函数说明
api_image_url($path)补全图片路径为完整 URL
api_process_rich_text($content)处理富文本图片路径(相对→绝对)
api_is_image_field($field, $modelFieldList)判断是否为图片字段
api_get_model_image_fields($modelid)获取模型的所有图片字段列表
api_process_item(&$item, $modelid)处理单条数据的图片路径
api_process_list(&$list, $modelid)批量处理列表数据的图片路径
api_check_token($token)校验 API 访问令牌
加入收藏