举个例子:<根目录>
  ├<站点1>
  │  ├<admin>
  │  │    └category.php
  │  │index.php
  │  └config.php
  └<站点2>如果category.php要引用config.php的内容,那用相对路径的写法就是'../config.php',可用绝对路径的话该怎么写呢?
原本我以为和HTML的写法一样,可以写成'/站点1/config.php',用'/'来代表根目录;可是测试的时候却出错了。请问在PHP里面,怎么样写才能得到http://根目录/站点1/config.php这样的形式?
  

解决方案 »

  1.   

    [
    code=PHP]"http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'][/code]"http://".$_SERVER ['HTTP_HOST'].“/config.php”
      

  2.   

    有没有办法在一个地方定义根目录位置,然后其他所有文件不用require或include就都可以引用的?
      

  3.   

    在根目录写一个config文件,把所有要用到的全局变量缓存.在文件头导入
    以后就可以直接用了,请参考一下大型的网站.
      

  4.   

    $_SERVER["ROOT_DOCUMENT"]好像是这个把
      

  5.   

    参考一下discuz吧,它也是可以在根目录下的某一目录的
      

  6.   

    $_SERVER['DOCUMENT_ROOT']如果设置了virtualHost 则根目录为virtualHost 设定的根目录。
    否则为apache 制定的document root 的根目录
      

  7.   


    我原本是把根目录写在config.php里面,可是写着写着就发现:如果我在子目录下面(比如admin目录)要引用config.php的话,那不是还得用相对路径的写法先引用?
    require_once '../config.php';除了$_SERVER['DOCUMENT_ROOT']这个方法,还有没有其他的方法?我知道的还有dirname(__FILE__)的做法,就是想找一种最简便的。
      

  8.   

    $_SERVER['DOCUMENT_ROOT'] 就是网站的根在网站的任意子目录下访问网站根下的文件都可以这样写:
    require_once $_SERVER['DOCUMENT_ROOT'] . '/config.php';如果你有权限编辑 php.ini 文件则可以指定 auto_prepend_file
    如 auto_prepend_file = "lib/TObject.php"
    每当php被执行的时候,程序 lib/TObject.php 都将被执行,从而达到不需要在每个php程序中书写嵌入文件的代码的目的,也免去了路径的烦恼
      

  9.   

    在根目录写一个config文件,把所有要用到的全局变量缓存.在文件头导入
    以后就可以直接用了,请参考一下大型的网站.