PHP中set_include_path()函数相关用法分析


Posted in PHP onJuly 18, 2016

本文实例讲述了PHP中set_include_path()函数相关用法。分享给大家供大家参考,具体如下:

先看如下代码:

<?php
/** 定义根目录 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
/** 定义插件目录(相对路径) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
?>

首先:

我们来看这个全局变量:__FILE__

它表示文件的完整路径(当然包括文件名在内)

也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径;

然后:

我们看这个函数:

string dirname ( string path )

它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,例如:

假如你的首页中用到了_FILE_这个变量:

(假设你的网页所在目录为:http://localhost/web/index.php),那么:
_FILE_的值为http://localhost/web/index.php(一个绝对路径)。而此时dirname (_FILE_)表示的就是http://localhost/web/也就是没有index.php这个文件名。

而dirname(dirname(_FILE_))表示的就是上一级的目录,以此类推;

最后:

看一下define()这个函数,其实他就是一个定义常量的函数,比如:define('MEN','ooooo');

那么你后你就可以用MEN来表示ooooo这个字符串;

那么这么写有什么好处呢,那就是当你需要修改变量的时候,你只要修改它就行了,相当的方便,尤其是像路径这样的字符串!

下面解释一下这段代码:

define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));

就是定义__TYPECHO_ROOT_DIR__为这个文件所在的目录,像这种定义一般是放在config.inc.php中的,那么获取的目录也就是config.inc.php所在的目录;也就是根目录!

define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');

这就不用说了!

至于set_include_path(get_include_path() . PATH_SEPARATOR . $path);是什么意思,他就是包含路径;

比如你有一个文件夹:命名为include,里面有数据库连接文件:conn.php……,

你这样设置:

set_include_path("/include")

那么以后你就直接可以在其他页面中使用

include("conn.php")

这不是经常见到吗?它参数就字符串,当然你也可以设置多个路径,中间用;分开,而那句:

set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);

什意思呢,举个例子:

你的一个页面有这样的语句:

include('/inc/sql.php');
include('/inc/conn.php');

而你突然发现我把这些要包含的文件放在inc目录下不安全,怎么办,要改,我想放到include目录中,好的,这么多页面不累死才怪:有没有好的方法!有!!!!!!!

在config.inc.php中写着么一句:

set_include_path(get_include_path() .'/include')

就这么简单,对,就这么简单!动态的修改!

你不要看这个:get_include_path() . PATH_SEPARATOR . $path这是什么,他就一路径字符串,中间的.是字符串连接符号,也就是刚才定义的那些常量的组合,组合成一字符串,也好就是说他可以动态的设置包含路径!如果正确返回包含路径,不正确返回false;

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
获取远程文件大小的php函数
Jan 11 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
PDO::rollBack讲解
Jan 29 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
详解PHP用mb_string处理windows中文字符
May 26 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 #PHP
详谈PHP程序Laravel 5框架的优化技巧
Jul 18 #PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 #PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 #PHP
Yii2中DropDownList简单用法示例
Jul 18 #PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 #PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 #PHP
You might like
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
php绘制一个矩形的方法
2015/01/24 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
php7 新增功能实例总结
2020/05/25 PHP
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
详解jQuery选择器
2016/12/21 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
搭建vue开发环境
2018/07/19 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
简单了解django缓存方式及配置
2019/07/19 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
Python接口开发实现步骤详解
2020/04/26 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
Java中实现多态的机制
2015/08/09 面试题
什么是事务?为什么需要事务?
2012/01/09 面试题
大学生求职信
2014/06/17 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
签证工作证明模板
2015/06/15 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
pandas中对文本类型数据的处理小结
2021/11/01 Python