请选择 进入手机版 | 继续访问电脑版
查看: 20|回复: 0

Discuz文件加载路径函数libfile()的使用及代码注释

[复制链接]

634

主题

636

帖子

3228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3228
发表于 7 天前 | 显示全部楼层 |阅读模式
Discuz文件加载路径函数libfile()代码注释

在Discuz程序开发中,有很多场景是需要引入或加载原始Discuz函数所在的程序文件,或者加载引入自己写的函数所在的程序文件,这时就需要用到Discuz文件加载路径函数libfile()。

1、libfile()函数位置:
  1. libfile()函数位于:source\function\function_core.php
复制代码

2、libfile()函数加载/引入程序文件的使用方法:
  1. libfile('控制器路径','可选:所属文件夹');
复制代码
示例一:require libfile('home/mytest') ,解析为require /source/home/home_mytest.php;
示例二:require libfile('home/mytest','class'),解析为require /source/class/home/home_mytest.php。

3、libfile()函数代码注释:
  1. function libfile($libname, $folder = '' ) {
  2.      $libpath = '/source/' .$folder;
  3.      if (strstr($libname, '/' )) { //如果$libname参数有/就用explode切开,这里看来只允许一个/
  4.          list($pre, $name) = explode( '/' , $libname);
  5.          $path = "{$libpath}/{$pre}/{$pre}_{$name}" ; //很明显的路径
  6.      } else {
  7.          $path = "{$libpath}/{$libname}" ; //没有/时的路径
  8.      }
  9.      return preg_match( '/^[\w\d\/_]+$/i' , $path) ? realpath(DISCUZ_ROOT.$path. '.php' ) : false ; //文件名只允许字母和数字
  10. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|蓄财网 ( 豫ICP备2021002293号 )

GMT+8, 2021-10-19 20:19 , Processed in 0.099080 second(s), 30 queries .

蓄财网 ©版权所有

© 2021 蓄财网(www.aixc.cn)

快速回复 返回顶部 返回列表