簡體   English   中英

如何在phar文件代碼中獲取.phar文件真實目錄?

[英]how to get a .phar file real directory within the phar file code?

我正在嘗試創建一個php可執行文件(一個phar文件)來生成一些文件,我想知道如何獲取phar文件的真實路徑(在phar文件代碼中)。

我想要做的是在phar文件的同一級別創建一個文件夾並在那里創建新文件,但realpath(__DIR__.'/../')似乎不起作用。

謝謝

https://stackoverflow.com/a/28775172/282601所示, __FILE__常量具有該方案的完整路徑:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to/foo.php

__DIR__類似:

phar:///home/cweiske/Dev/test/phar/test.phar/path/to

所以當調用realpath(__DIR__)你仍然有phar://前綴,阻止你加載文件。

您必須刪除phar:// scheme以及.phar文件的路徑以獲取具有__DIR__的phar位置。


更簡單的是Phar::running(false) ,它只返回路徑:

/home/cweiske/Dev/test/phar/test.phar

答案是

 $string = 'phar://E:/php/www/my.phar';
 $string = pathinfo($string);
 $_dir_ = parse_url($string['dirname']);
 echo $_dir_['host'].':/'.$_dir_['path'];

結果

E:/php/www

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM