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(2)――PHP类型
Feb 15 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php精度计算的问题解析
Jun 21 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
php删除数组元素示例分享
2014/02/17 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python最长公共子串算法实例
2015/03/07 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python正则中最短匹配实现代码
2018/01/16 Python
python实现学生信息管理系统
2020/04/05 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python文件写入write()的操作
2019/05/14 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
公务员检讨书
2014/11/01 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS