我非常依赖$_SERVER [“DOCUMENT_ROOT”]获得绝对路径.但是,这对于不指向根目录的网站不起作用.
我将网站存储在文件夹中,如:
> site1
> site2
全部直接在根内.有没有办法获取当前站点根目录的服务器中的路径?
应该返回:
/var/chroot/home/content/02/6945202/html/site1 // If the site is stored in folder 'site1' /var/chroot/home/content/02/6945202/html // If the site is stored in the root
您可以将dirname($_ SERVER [‘SCRIPT_NAME’])附加到$_SERVER [‘DOCUMENT_ROOT’].
更新
该网站似乎是该文件夹上的“挂载”目录,所以SCRIPT_NAME显然是/.
所以,为了使这个工作,你必须使用__DIR__或dirname(__ FILE__)来找出脚本在文件系统中的位置.
更新2
整个网站没有一个index.PHP控制器,所以也不会工作.
以下表达式将字符串“减法”找到公共路径.您有一个已知的前缀(文档根),一个未知(根文件夹)和一个已知的后缀(脚本路径),因此要找到前两个,您将采取完全绝对路径(__FILE__)并减去已知的后缀:
substr(__FILE__,-strlen($_SERVER['SCRIPT_NAME']));
如果包含的文件需要此值,则必须首先将其保存在常量中,然后再包含依赖脚本. .