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程序员最常犯的11个MySQL错误小结
Nov 20 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
Aug 28 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 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 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
header跳转和include包含问题详解
2012/09/08 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
JS解密入门之凭直觉解
2008/06/25 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
Vue基础配置讲解
2019/11/29 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python随机生成指定长度密码的方法
2015/04/04 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
2013年保送生自荐信格式
2013/11/20 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫