<?
$ndir = str_replace("\\","/",dirname(__FILE__));
require_once($ndir."/你要引入的文件的相对路径/你要引入的文件.php");
?>

解决方案 »

  1.   

    有没有取得我的根目录的方法?
    比如, 我的根目录在服务器上的实际路径为 /usr/webusr/userA
    而我不想把这个固定的路径写在所有要引用文件的地方, 因为可能我会换到其他的服务器或者我想在方便在本地调试
      

  2.   

    可参考下这段代码:$file为文件名 if (empty($file))
    $file = $PHP_SELF;
    $depth = explode("/",$file);
    $path = str_repeat(""../"", count($depth)-2); //减2是因为第一个为/最后一个为文件名
      

  3.   

    要么,你用对等级的目录,要么用绝对路径,只能二选一
    如果用
    <?
    $ndir = str_replace("\\","/",dirname(__FILE__));
    require_once($ndir."/你要引入的文件的相对路径/你要引入的文件.php");
    ?>
    这种方法,换服务器也没影响呀
    像mambo、koobi等这些大型CMS系统都这样引入
      

  4.   

    inc目录就是用来定义函数和类的,你跑到子目录下面去执行d.php有什么意义?还include过来include过去的,一点层次结构都没有
      

  5.   

    刚好我前段时间在为这个事情烦恼了一天,不过现在解决了,用下面这个语句可以不管INCLUDE的路径,不过其他的还得自己设
      ini_set("include_path","./;../");
      

  6.   

    定义程序统一配置文件如config.php,放在系统根目录
    在配置文件中定义系统根路径,
    define( "APP_ROOT" , dirname(__FILE__) );
    在所有需要包含文件的地方使用从根目录开始的方式
    require( APP_ROOT . "/inc/d.php" );
      

  7.   

    你把一个本来很简单的问题弄复杂了几点原则
    1、把可能被任意程序引用文件放在include_path指向的非./目录中。比如数据库类,模板类等
    2、把专用嵌入文件放在引用文件的下级目录中,可以多层
    3、不在下级目录中引用上级目录的文件在php中,嵌入文件默认是通过绝对路径进行的。当采用相对路径时,路径的参照点是第一个执行嵌入指令的程序所在目录。无论嵌入文件有嵌入了多少文件,这个参照点是不会变的。
    因此,无论你如何组织文件,都应做到只嵌入平级和下级目录的文件
    特殊情况下你可以用realpath通过__FILE__常量以相对路径构造绝对路径
      

  8.   

    我比较喜欢用 define('ROOT_DIR', '/home/www/hddoc/')这样的方式定义路径~~
    然后require_once(ROOT_DIR.'include/a.php')'/home/www/hddoc/'你也可以直接换成__FILE__
      

  9.   

    ya~~没看见 ice_berg16(寻梦的稻草人)的回复~~同意他的观点~~