如何在phar文件代码中获取.phar文件真实目录?

its*_*avi 6 php command-line-interface phar

我正在尝试创建一个php可执行文件(一个phar文件)来生成一些文件,我想知道如何获取phar文件的真实路径(在phar文件代码中).

我想要做的是在phar文件的同一级别创建一个文件夹并在那里创建新文件,但realpath(__DIR__.'/../')似乎不起作用.

谢谢

cwe*_*ske 8

正如所示/sf/answers/2014262071/__FILE__常数与该计划的完整路径:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to/foo.php
Run Code Online (Sandbox Code Playgroud)

__DIR__ 类似:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to
Run Code Online (Sandbox Code Playgroud)

因此,在呼叫时,realpath(__DIR__)您仍然具有phar://阻止您加载文件的前缀.

您必须删除该phar://方案以及其中的文件路径.phar以获取phar位置__DIR__.


更容易的是Phar::running(false),它只是返回路径:

/home/cweiske/Dev/test/phar/test.phar
Run Code Online (Sandbox Code Playgroud)