kernelsky 发表于 2017-3-27 09:58:03

PHP中 __FILE__ 和 dirname(__FILE__) 使用

  __FILE__    返回网站根目录
  dirname(__FILE__) 就是取得当前文件所在的目录
  echo dirname(__FILE__);---->>>D:\Program Files\Apache Software\Apache2.2\htdocs\php
  如:
  include,include_once,require,require_once,包含某个文件,最近在写PHP程序时,遇到了很多麻烦就在此处,一般来说我喜欢写相对路径,但是同一个文件在不同位置引用时相对路径都不同。。这样的话一个功能调通了,另一个功能又出现问题了,后来花了好长时间才解决这个问题:
  利用PHP中的一个常数__FILE__,和函数dirname();
  __file__
  这个内定常数是当前php程序的就是完整路径(路径+文件名)。
  即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。
      请看下面例子:
c:/appserv/www/test/1/a.php
  
<?php
$the_full_name=__FILE__;
$the_dir=dirname(__FILE__);
echo $the_full_name; //返回c:/appserv/www/test/1/a.php
  echo $the_dir;            //返回c:/appserv/www/test/1
  ?>
  c:/appserv/www/test/b.php

  
<?php
  include "test/a.php";
echo $the_full_name; //返回c:/appserv/www/test/1/a.php
echo $the_dir;            //返回c:/appserv/www/test/1
?>
  简单地说:
      __FILE__     返回当前 路径+文件名
      dirname(__FILE__) 返回当前文件路径的 路径部分
      dirname(dirname(__FILE__));得到的是文件上一层目录名(不含最后一个“/”号)
  例如,当前文件是 c:/appserv/www/test/test.php ,则
__FILE__ 得到的就是完整路径       即 c:/appserv/www/test/test.php ,而
dirname(__FILE__)得到路径部分   即 c:/appserv/www/test     (后面没有“/”号)
  例如上面的c:/appserv/www/test/b.php就可以这样写:
  
<?php
  include dirname(__FILE__)."/b.php";
echo $the_full_name; //返回c:/appserv/www/test/1/a.php
echo $the_dir;            //返回c:/appserv/www/test/1
?
  原文地址是:http://blog.csdn.net/zyyr365/archive/2010/09/10/5875388.aspx
  http://www.liangkun.net
  z
页: [1]
查看完整版本: PHP中 __FILE__ 和 dirname(__FILE__) 使用