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

 更新时间:2016年07月18日 16:21:50   作者:wjtlht928  
这篇文章主要介绍了PHP中set_include_path()函数相关用法,结合实例形式分析了php针对文件路径设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总

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

相关文章

  • PHP将进程作为守护进程的方法

    PHP将进程作为守护进程的方法

    这篇文章主要介绍了PHP将进程作为守护进程的方法,实例分析了php中守护进程的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP 检查扩展库或函数是否可用的代码

    PHP 检查扩展库或函数是否可用的代码

    随着版本的升高,PHP的功能也越来越完善,可用的扩展库和函数也越来越多,因此,我们写程序时也要考虑版本的兼容问题,同时还要考虑服务器(特别是虚拟主机)是否安装了扩展库。
    2010-04-04
  • 学习php设计模式 php实现适配器模式

    学习php设计模式 php实现适配器模式

    这篇文章主要介绍了php设计模式中的适配器模式,使用php实现适配器模式,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • PHP 写文本日志实现代码

    PHP 写文本日志实现代码

    PHP 写文本日志实现代码,需要的朋友可以参考下。
    2010-05-05
  • 阿里云的WindowsServer2016上部署php+apache

    阿里云的WindowsServer2016上部署php+apache

    这篇文章主要介绍了阿里云的WindowsServer2016上部署php+apache的相关资料,需要的朋友可以参考下
    2018-07-07
  • php解析字符串函数sscanf的实用方法

    php解析字符串函数sscanf的实用方法

    在PHP编程中,有时需要对字符串进行解析,而sscanf函数就是一种非常方便的解析工具,本文详细介绍了sscanf函数的用法,包括基本用法和高级用法,通过大量的示例代码,展示了如何使用sscanf函数解析各种不同格式的字符串
    2023-09-09
  • php中$_POST与php://input的区别实例分析

    php中$_POST与php://input的区别实例分析

    这篇文章主要介绍了php中$_POST与php://input的区别,实例分析了$_POST与php://input的功能、使用技巧与用法区别,需要的朋友可以参考下
    2015-01-01
  • php利用header函数实现文件下载时直接提示保存

    php利用header函数实现文件下载时直接提示保存

    相信很多人在实现文件下载功能时会遇到这种情况,本意是点击下载连接提示保存对话框,事情往往事与愿违,例如PDF这样的文件会直接在浏览器中现实文件内容,而不是提示保存。通过下面的方法可以解决这个问题。
    2009-11-11
  • 如何使用PHP批量去除文件UTF8 BOM信息

    如何使用PHP批量去除文件UTF8 BOM信息

    如果PHP文件头部包含BOM信息,就会输出一个空白,在很多时候会带来问题,比如我们session无法工作、cookie无法设置等等问题
    2013-08-08
  • 9个实用的PHP代码片段分享

    9个实用的PHP代码片段分享

    这篇文章主要介绍了9个实用的PHP代码片段分享,本文讲解了查看邮件是否已被阅读、从网页中提取关键词、查找页面上的所有链接、自动转换URL为可点击超链接等内容,需要的朋友可以参考下
    2015-01-01

最新评论