当前位置: 首页 > 面试题库 >

获取运行脚本的父目录

涂羽
2023-03-14
问题内容

在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根目录开始。


问题答案:

如果您的脚本位于,/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()但是您知道了。



 类似资料:
  • 问题内容: 我正在使用AJAX返回包含脚本的响应。 通过该脚本,如何确定脚本在其中运行的父元素的ID,而不将ID传递给服务器?有办法吗? 谢谢。 问题答案: 如果您为脚本分配了ID(在古老的浏览器中会爆炸),则可以尝试:

  • 本文向大家介绍Shell脚本获取进程的运行时间,包括了Shell脚本获取进程的运行时间的使用技巧和注意事项,需要的朋友参考一下 在我们的系统中,我曾写了一个脚本去定时更新一些repository,但偶尔会遇到问题,比如:git pull之时可能会卡在那里(可能由于某时刻的网络问题),它会阻碍后面的下一次更新。 所以我就在想,我今后启动这个脚本时,进行检查,如果上次运行的脚本还没结束,而且过了某个时

  • java.lang.NullPointerException(位于org.openqa.selenium.support.pageFactor.defaultelementLocator.java:69)(位于org.openqa.selenium.support.pageFactor.internal.locatingelementandler.invoke(locatingelementand

  • 问题内容: 我搜索了很多内容,并获得了很多不同的解决方案和包含信息的变量来获取绝对路径。但是它们似乎在某些条件下工作,而不在其他条件下工作。有没有一种方法可以获取PHP中已执行脚本的绝对路径?对我来说,该脚本将从命令行运行,但是,如果在Apache等内部运行,则解决方案也应起作用。 说明:最初执行的脚本,不一定是解决方案的编码文件。 问题答案: 正确的解决方案是使用以下功能: 这将为您提供初始脚本

  • 问题内容: 如何导入驻留在父目录中的模块(python文件)? 这两个目录中都有文件,但是我仍然无法从父目录导入文件? 在此文件夹布局中,脚本B尝试导入脚本A: 脚本B中的以下代码不起作用: 问题答案: 您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。 通常,最好使用绝对进口,而不是相对进口。 在: 如果您想作为脚本

  • 本文向大家介绍PowerShell中获取当前运行脚本路径的方法,包括了PowerShell中获取当前运行脚本路径的方法的使用技巧和注意事项,需要的朋友参考一下 在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本。以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢? 很简单,通过内置的$MyInvocation变量: