文件a.php(所在目录为/usr/local/apache2/htdoc/www)
$path=....//如何写
echo $path;
与a.php同一目录的文件b.php(所在目录为/usr/local/apache2/htdoc/www)
require_once "a.php";
在a.php所在目录下一级目录的文件c.php(所在目录为/usr/local/apache2/htdoc/www/www2)
require_once "a.php";
请问一下a.php里怎样写,运行b.php和c.php所得的结果都一样!不要用绝对路径!

解决方案 »

  1.   

    通常是用dirname(__FILE__);得到目录,再根据这个拼凑其它文件的路径
      

  2.   

    通常是用dirname(__FILE__);得到目录,再根据这个拼凑其它文件的路径
    //这种处理方式相当于使用绝对路径了,也就是说用户得到你Apache的权限后,你整个服务器都废了,已经作了设置不能访问Apache以外的目录的,所以不行../a.php
    //你运行试了吗?../是返回上一级目录,两个不同目录下的文件包含肯定输出的结果不一样。
      

  3.   


    相对路径最后也会被扩展成绝对路径,php会调用realpath函数获得路径信息,
    不管是include还是require,或者是fopen打开文件,最后总会用绝对路径调用open系统调用
    你可以用strace跟踪一下apache的进程看看即使用户得到apache的权限,也没有能力影响整个系统,除非你是windows