zendframework的示例index.php里有这样一句

set_include_path('.' . PATH_SEPARATOR . '../library/'. PATH_SEPARATOR . './application/models/'. PATH_SEPARATOR . './application/lib/'. PATH_SEPARATOR . get_include_path());

不知道 PATH_SEPARATOR是什么,其实就是一个常量

直接echo就知道它的值了,在linux上是一个":"号,WIN上是一个";"号

set_include_path就是设置php的包含文件路径,相当是操作系统的环境变量

<?php// Works as of PHP 4.3.0set_include_path('/inc'); // Works in all PHP versionsini_set('include_path', '/inc');?>

关于set_include_path的问题,在win下,当你要include多个路径的话,你要用";"隔开,但在linux下就使用":"隔开的。

所以上面的zf的代码真是绝配.
get_include_path取得当前已有的环境变量

==================================================

首先
我们来看这个全局变量:__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这个字符串;
如果你学过C语言,你就很清楚,其中也有一个类似的#define MEN "ooooo";(其实应该说哦php和C类似,因为php就是c编写的);
那么这么写有什么好处呢,那就是当你需要修改变量的时候,你只要修改它就行了,相当的方便,尤其是像路径这样的字符串! 酒后给你解释一下你这段代码:
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;

set_include_path详细解释的更多相关文章

  1. set_include_path详细解释(转)

    首先我们来看这个全局变量:__FILE__它表示文件的完整路径(当然包括文件名在内)也就是说它根据你文件所在的目录不同,有着不同的值:当然,当它用在包行文件中的时候,它的值是包含的路径: 然后:我们看 ...

  2. .htaccess语法之RewriteCond与RewriteRule指令格式详细解释

    htaccess语法之RewriteCond与RewriteRule指令格式详细解释 (2012-11-09 18:09:08) 转载▼ 标签:  htaccess it 分类: 网络 上文htacc ...

  3. cookie的详细解释

    突然看到网页上中英文切换的效果,不明白怎么弄得查了查 查到了cookie 并且附有详细解释 就copy留作 以后温习 http://blog.csdn.net/xidor/article/detail ...

  4. tar命令的详细解释

    tar命令的详细解释 标签: linuxfileoutputbashinputshell 2010-05-04 12:11 235881人阅读 评论(12) 收藏 举报  分类: linux/unix ...

  5. Linux学习笔记15——GDB 命令详细解释【转】

    GDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具. 和所有常用的调试工 ...

  6. C语言 - 结构体(struct)比特字段(:) 详细解释

    结构体(struct)比特字段(:) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26722511 结构体(struc ...

  7. 姿势体系结构的详细解释 -- C

    我基本上总结出以下4部分: 1.问题的足迹大小. 2.字节对齐问题. 3.特别保留位0. 4.这种结构被存储在存储器中的位置. #include <stdio.h> #include &l ...

  8. Java - 面向对象(object oriented)计划 详细解释

    面向对象(object oriented)计划 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24058107 程序包括 ...

  9. 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释

    迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...

随机推荐

  1. Foix_Reader_6.0|PDF阅读器

    福晰PDF阅读器,是阅读器中的精品.此版本是优化版本. 00:风格前卫 01:使用简洁 下载地址:        http://yunpan.cn/cHvyUfCdMKZz6  访问密码 ead7

  2. 前端自动化神器LiveReload配合浏览器和less/sass使用方法

    前言:搜了半天,各种推荐,什么十大工具啦.优秀工具集合啦之类的咸淡文章,就是没有一个讲怎么弄的.配合官网的article自己研究了半天总算配置好了.顺便吐槽下官网关于sass/less设置这块说的模糊 ...

  3. BZOJ2120 数颜色

    Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成 一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同 ...

  4. 洛谷P1156 垃圾陷阱

    动规仍然是难关啊 题目描述 卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中.“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2<=D<=100)英尺. 卡门想 ...

  5. 轻量级应用开发之(01)第一个IOS程序

    一 IPhone轻量级开发 1. 开发环境 Mac 版本: OS X EICap 10.11.3 (15D21) XCode开发版本: Version 7.2.1 (7C1002) 2.简单分析 UI ...

  6. kindeditor粘贴word文档内容时去除格式的方法?如何设置为默认无文本格式呢?

    打开文件夹找到kindeditor-min.js文件,搜索pasteType函数,默认值是2.设置为1即可. 设置粘贴类型,0:禁止粘贴, 1:纯文本粘贴, 2:HTML粘贴.

  7. 项目总结—jQuery EasyUI-DataGrid动态加载表头

    http://blog.csdn.net/zwk626542417/article/details/19248747 概要 在前面两篇文章中,我们已经介绍了在jQuery EasyUI-DataGri ...

  8. yum命令一些易遗忘的参数

    这些yum命令是我经常忘记的,所以记录下 yum check-update 检查可更新的RPM包 yum update 更新所有的RPM包 yum update kernel kernel-sourc ...

  9. PHP CALC

    <html> <head> <title>PHP计算器</title> <meta http-equiv="Content-Type&q ...

  10. Serenity框架官方文档翻译3.2(多租户)

    3.2多租户 在本教程中我们将把Norhwind变成一个多租户应用程序. 这是一个维基百科的多租户软件定义: 软件多租户是指一个软件架构的一个实例软件运行在一个服务器和多个租户.租户是一组共享一个公共 ...