一个是:DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR:路径分隔符,linux上就是‘/’    windows上是‘\’

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

php中有一个非常有用的预定义常量PATH_SEPARATOR,我们可以通过该常量来判断当前服务器是linux还是Windows。本文将向大家讲解php使用PATH_SEPARATOR获取当前服务器的类型。

一个是:PATH_SEPARATOR PATH_SEPARATOR:include多个路径使用,在windows下,当你要include多个路径的话,你要用”;”隔开,但在linux下就使用”:”隔开的。
这2个常量的使用能够避免不同平台的兼容性问题

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

PATH_SEPARATOR是php中的一个预定义常量,我们可以直接echo这个常量,在linux系统中,该常量输出”:”,在windows系统中,该常量输出”;”号。因此,我们可以通过PATH_SEPARATOR输出值来判断当前服务器系统类型。

您可能感兴趣的文章:

  • 在Thinkphp中使用ajax实现无刷新分页的方法
  • php array_key_exists() 与 isset()
    的区别
  • PHP实现简易blog的制作
  • 浅谈php和js中json的编码和解码
  • php注册和登录界面的实现案例(推荐)
  • php
    使用html5实现多文件上传实例
  • php 多文件上传的实现实例
  • php
    PATH_SEPARATOR判断当前服务器系统类型实例

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

在linux系统中输出结果:

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

<?php
  var_dump(PATH_SEPARATOR );
  //输出结果:string(1) ":"
?>
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 ?>

在windows系统中输出结果:

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

<?php
  var_dump(PATH_SEPARATOR );
  //输出结果:string(1) ";"
?>

如果我们设置了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 ?>
function getOS(){
 if(PATH_SEPARATOR == ':'){
 return 'Linux';
 }else{
 return 'Windows';
 }
}

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预定义变量

您可能感兴趣的文章:

  • 解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
  • 在Thinkphp中使用ajax实现无刷新分页的方法
  • php array_key_exists() 与 isset()
    的区别
  • PHP实现简易blog的制作
  • 浅谈php和js中json的编码和解码
  • php注册和登录界面的实现案例(推荐)
  • php
    使用html5实现多文件上传实例
  • php 多文件上传的实现实例

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

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

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注