2016-04-06 34 views
2

讓我們假設我有指向/some/fake/location符號鏈接從/some/real/location如何在不獲取真實路徑的情況下使用__dir__?

在這種假設的目錄中我有一個名爲blah.php文件內容如下:

#!/usr/bin/php  
<?php echo __dir__; ?> 

我然後在命令行中執行blah.php像這樣:

php /some/fake/location/blah.php 

輸出是

/some/real/location 

如何獲取當前PHP文件的目錄而不是解析任何符號鏈接?

回答

1

谷歌搜索後,似乎有一百萬其他人需要__dir__不解決符號鏈接。不幸的是,答案是沒有答案。

1

由於__DIR__自動解析符號鏈接,因此您可能需要使用$_SERVER["SCRIPT_FILENAME"]來代替。它將返回當前正在執行的腳本的絕對路徑名。

+0

不完全是我想要的,但我已經試圖搞亂那個變量。 'blah.php'包含其他文件,我希望這些文件知道它們在哪個目錄中。'$ _SERVER ['SCRIPT_FILENAME']'只返回'blah.php'的完整路徑。 – Charlie

+1

請問這裏有答案:http://stackoverflow.com/questions/12580330/php-dirname-returns-symlink-path? – ficuscr

+0

看起來像完全相同的問題,但有一個完全不同的接受答案。 'blah.php'不知道它是否在一個符號目錄中,也不知道它存儲在哪裏。 'readlink(__ dir __)'也會返回真實的目錄而不是想要的目錄。 – Charlie

相關問題