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

Discuz文件路径加载函数libfile()使用详解

[复制链接]

634

主题

636

帖子

3228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3228
发表于 7 天前 | 显示全部楼层 |阅读模式
Discuz文件路径加载函数libfile()使用详解
在Discuz程序开发网站的时候,常常会使用到引入某个文件的功能,这个加载文件的函数是libfile()函数。

1、Discuz文件引入函数libfile()在以下文件中定义:
  1. source\function\function_core.php //Discuz libfile()函数所在文件
复制代码

2、Discuz libfile()函数代码:
  1. function libfile($libname, $folder = '') {
  2.         $libpath = '/source/'.$folder;
  3.         if(strstr($libname, '/')) {
  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. }
复制代码
关于Discuz libfile()函数代码注释,详见《Discuz文件加载路径函数libfile()的使用及代码注释》帖子。

3、Discuz libfile()函数介绍:
libfile($libname, $folder = '')
含有2个参数:$libname(文件名称)、$folder(文件路径),Discuz libfile()函数读取source目录下的$folder子目录作为载入路径。

4、Discuz libfile()函数使用示例:

1)示例一:
  1. require_once libfile('function','plugin/test/');
复制代码
实际是:require_once /source/plugin/test/function.php

2)示例二:
另外当$libname中包含/的时候,把$libname分为前后两部分,前面部分为子目录。
规则为:/source/$folder/$libname_pre/$libname_pre_$libname_end.php
  1. require_once libfile('function/cache');
复制代码
实际是:require_once /source/function/function_cache.php
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2021-10-19 20:38 , Processed in 0.118271 second(s), 32 queries .

蓄财网 ©版权所有

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

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