一尘不染

获取运行脚本的父目录

php

在PHP中,相对于www根目录,获取当前运行脚本的 目录的最干净方法是什么?假设我有:

$_SERVER['SCRIPT_NAME'] == '/relative/path/to/script/index.php'

要不就:

$something_else == '/relative/path/to/script/'

而且我需要/relative/path/to/正确插入斜线。你有什么建议?优选一个衬里。

编辑

我需要获得一个相对于www根目录的路径,dirname(__FILE__)为我提供文件系统中的绝对路径,这样就无法正常工作。$_SERVER['SCRIPT_NAME']另一方面,从www根目录开始。


阅读 214

收藏
2020-05-29

共1个答案

一尘不染

如果您的脚本位于,/var/www/dir/index.php则将返回以下内容:

dirname(__FILE__); // /var/www/dir

要么

dirname( dirname(__FILE__) ); // /var/www

编辑

这是许多框架中用来确定来自app_root的相对路径的技术。

文件结构:

 / var /
      万维网/
          index.php
          subdir /
                 library.php

index.php是我的调度程序/ boostrap文件,所有请求都路由到:

define(ROOT_PATH, dirname(__FILE__) ); // /var/www

library.php是位于额外目录下的某个文件,我需要确定相对于应用程序根目录(/ var / www /)的路径。

$path_current = dirname( __FILE__ ); // /var/www/subdir
$path_relative = str_replace(ROOT_PATH, '', $path_current); // /subdir

可能有更好的方法来计算相对路径,str_replace()但是您知道了。

2020-05-29