永发信息网

php get_include_path();是干嘛的、??还有set_include_path();/?????

答案:5  悬赏:30  手机版
解决时间 2021-11-27 21:13
php get_include_path();是干嘛的、??还有set_include_path();/?????
最佳答案
首先
我们来看这个全局变量:__FILE__
它表示文件的完整路径(当然包括文件名在内)
也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径;

然后:
我们看这个函数:
string dirname ( string path )
它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,给你举个例子
假如你的首页中用到了_FILE_这个变量:
(假设你的网页所在目录为:),那么:
_FILE_的值为(一个绝对路径)。而此时dirname (_FILE_)表示的就是也就是没有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;

一口气写了这么多,累死了!不知道是不是你想要的答案!
全部回答
一个取值,一个设置。这个主要是嵌套路径的。
get_include_path() 获取当前的环境变量,取php.ini里设置的 include_path路径
set_include_path() 是设置include的路径
get_include_path() 获取当前的环境变量,取php.ini里设置的 include_path路径
set_include_path() 是设置include的路径
功能同下面的一样,可以设置php包含目录:
在php的配置文件php.ini里有这么一行:
windows下路径:c:/windows/php.ini
linux下依据php安装目录不同而已,可以使用locate php.ini查找
include_path = ".;“
可以设置为:
include_path = ".:/web/common:/web/smarty:/web/include“
设置完成后,你在文件里包含这三个目录下的文件,直接写文件名即可,不需要写完整路径。
如:
include('/web/common/config.inc.php');可以直接写成:
include('config.inc.php'),即可,
注:include_path指令中,第一个是点,代表当前目录,多个目录的分隔:
windows下用分号
linux下用冒号

建议再查下php手册:

get_include_path(函数名称)
(PHP 4 >= 4.3.0, PHP 5)(加入版本)
get_include_path — Gets the current include_path configuration option(获取当前include_path的配置项)
string get_include_path ( void ) (返回值String 用法)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
hello,我看到你很久以前提问过一个嘴部发麻
关于IBM小型机未来的发展前景,我想从事这方
《想逃走,没门!》txt全集下载
《奔跑吧》太原录制现突发什么状况?
三乡大布村办居住证到什么地方办
为什么碰到手皮肤有点刺痛
如何说服学校 搞某个活动?公益类。
新能源汽车会用上泡棉和密封件吗
推三交经可以减手臂上的肉?
歌词 你说明天就等明天似乎对我太遥远是什么
玩英雄联盟fps的流畅度跟显示屏有没有关系?
单选题你将一手自然下垂,另一手摸一摸这只手
暑假考科目二挂了,想寒假再考会忘记太多吗,
如何辨别苹果手机充电器的真伪
精卫填海这个神话故事说明了精卫有怎样的精神
推荐资讯
小学五年级语文下册19课 生字一字两词
1.6米宽乘以2.45米高柜子柜门多少平方
怎么样利用VBA对同一个文件夹下所有EXCEL文件
受各种因素影响,现在北京二手房交易冷淡,房
潍坊爱琴海洗浴足疗中心里面的技师怎么样啊,
门口的脚垫上刻有喜字,脚踩在喜字上好吗
求怒江之战,百度云资源。
典韦的力气在古代排名第几
求一张日出被一棵孤独的树挡住阳光的图非常美
假想一下如果某人一天在人群密集的地方哇哇叫
3.6×2.17 3..49×1.2
莱斯特为什么要骗阿曼德说不爱他
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?