PHP解决不同目录中调用时路径的问题
-index.php
-config.php
+bbs
-index.php
-view.php
+inc
-mysql.php
这是一个麻烦的目录结构。
在config.php中:
include './inc/mysql.php';
在index.php中:
include './config.php'; //正常
在bbs/view.php中:
include '../config.php'; //mysql.php包含失败,因为bbs/inc/mysql.php不存在
那么,我们怎样写config.php,才能使它无论在哪里被包含都能正确找到inc/mysql.php呢?对了,只要我们得到config.php所在目录的绝对路径就好了嘛,使用它进行定位,再复杂的目录结构都不怕了!
echo __FILE__;
//我们看到了什么?是的,这就是当前文件的绝对路径,无论它被包含到哪里都不会改变。
echo dirname(__FILE__);
//看到了吗?呵呵,所有的问题都解决了!
config.php:
define('ROOT',dirname(__FILE__));
include ROOT.'/mysql.php';
正确包含config.php后,我们就可以在任何地方使用常量ROOT了,它永远表示config.php所在目录的绝对路径。
注意:1. __FILE__前后各两个下划线
2.不要忘了文件名前的反斜杠!