php的文件引用

Posted 我也很惆怅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的文件引用相关的知识,希望对你有一定的参考价值。

最近研究公司代码时发现了set_include_path(dirname(__FILE__));这样一行代码,在网上查了些资料,才把这个方法的作用弄清楚。

首先,dirname(__FILE__)这个方法返回当前代码所在文件的路径。

而set_include_path这个函数呢,就相当于windows的环境变量。windows可以通过环境变量的路径,来从指定的路径下寻找需要的文件。

当我们的项目需要引入多个类文件、函数文件时,特别是当所引用的文件路径比较深的时候,我们的代码就会变成下面这样:

1 <?php
2 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test1.php");
3 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test2.php");
4 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test3.php");
5 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test4.php");
6 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test5.php");
7 ?>

是不是感觉写出来很多冗余的代码了。

如果我们设置了set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/");那么我们的代码前面的路径就可以省略了。

1 <?php
2 set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/");
3 include("test1.php");
4 include("test2.php");
5 include("test3.php");
6 require("test4.php");
7 require("test5.php");
8 ?>

set_include_path函数还可以设置多个路径变量,在linux下用:分隔,在windows下用;分隔。比如:

 1 <?php
 2 define(‘A‘,‘xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/‘);
 3 define(‘B‘,‘yyy/yyy/yyy/yyy/yyy/yyy/yyy/yyy/‘);
 4 define(‘C‘,‘zzz/zzz/zzz/zzz/zzz/zzz/zzz/zzz/‘);
 5 
 6 set_include_path(A.PATH_SEPARATOR.B.PATH_SEPARATOR.C);
 7 
 8 include("test1.php");
 9 include("test2.php");
10 include("test3.php");
11 require("test4.php");
12 require("test5.php");
13 
14 ?>

最后,还有两个php预定义变量

PATH_SEPARATOR:路径分隔符,include多个路径使用,在win下,当你要include多个路径的话,你要用”;”隔开,但在linux下就使用”:”隔开的。

还有DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’    windows上是’\’。

 

以上是关于php的文件引用的主要内容,如果未能解决你的问题,请参考以下文章

PHP常用代码片段

解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段

php中的全局变量引用

未解决的对“片段”部分中的符号“”的引用

php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip

怎么在js中挂马