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

获取初始运行脚本的绝对路径

姬雪松
2023-03-14
问题内容

我搜索了很多内容,并获得了很多不同的解决方案和包含信息的变量来获取绝对路径。但是它们似乎在某些条件下工作,而不在其他条件下工作。有没有一种方法可以获取PHP中已执行脚本的绝对路径?对我来说,该脚本将从命令行运行,但是,如果在Apache等内部运行,则解决方案也应起作用。

说明:最初执行的脚本,不一定是解决方案的编码文件。


问题答案:

正确的解决方案是使用以下get_included_files功能:

list($scriptPath) = get_included_files();

这将为您提供初始脚本的绝对路径,即使:

  • 此功能放置在包含的文件中
  • 当前工作目录与初始脚本目录不同
  • 该脚本使用CLI作为相对路径执行

这是两个测试脚本;主脚本和包含的文件:

# C:\Users\Redacted\Desktop\main.php
include __DIR__ . DIRECTORY_SEPARATOR . 'include.php';
echoScriptPath();

# C:\Users\Redacted\Desktop\include.php
function echoScriptPath() {
    list($scriptPath) = get_included_files();
    echo 'The script being executed is ' . $scriptPath;
}

结果;注意当前目录:

C:\>php C:\Users\Redacted\Desktop\main.php
The script being executed is C:\Users\Redacted\Desktop\main.php


 类似资料:
  • 本文向大家介绍JS获取当前脚本文件的绝对路径,包括了JS获取当前脚本文件的绝对路径的使用技巧和注意事项,需要的朋友参考一下  当写模块加载器时,获取当前脚本文件的绝对路径作为基础路径是必不可少的一步,下面我们一起来探讨一下这个问题吧! 一、各大浏览器的实现方式                  [a]. Chrome和FF  超简单的一句足矣! 这里利用了对象 document.currentSc

  • 问题内容: 我有一个定义管道作业的DSL groovy脚本。我需要从工作区加载Jenkinsfile。Jenkinsfile与groovy脚本位于同一文件夹中。我正在尝试以编程方式获取groovy脚本的路径,以便可以使用它来找出Jenkinsfile的路径并使用加载它。在经历job- dsl-wiki 之后,我尝试使用指令。但是我收到以下错误: 这是我的DSL脚本 我在这里做错什么了吗?非常感谢您

  • 本文向大家介绍Shell中获取脚本所在目录绝对路径的方法,包括了Shell中获取脚本所在目录绝对路径的方法的使用技巧和注意事项,需要的朋友参考一下 要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname(realpath(__FILE__)) ; C# 则有 System.Windows.Forms.Application.StartupPath ; java 似乎

  • 问题内容: 在CSS中,任何图像路径都相对于CSS文件位置。 f.ex如果我放入CSS文件并使用类似 浏览器将查找有意义的图像。 是否可以在javascript中做同样的事情? F.ex如果我包括以下代码并将其放在其中: 找不到图片,因为浏览器使用HTML文件作为起点,而不是脚本位置。我希望能够像CSS一样使用脚本位置作为起点。 这可能吗? 问题答案: 按照上面的方法在DOM中搜索您自己的标记是可

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

  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做