2011-09-05 77 views
10

據我所知,php的getcwd()(和類似的功能,例如dirname(__FILE__))應該返回正在執行的文件的當前目錄。php getcwd()解析符號鏈接的目標而不是當前目錄

如果當前目錄恰好是一個符號鏈接到其他目錄,PHP(大概是與Apache一起)應該返回示出了與「目錄」你在符號鏈接名的路徑。

例:

from /var/www, 
directory 'one' contains index.php 
symlink 'two' points at directory 'one' 

one/index.php: <?php echo getcwd(); ?> 

訪問http://localhost/two/index.php在瀏覽器中顯示/var/www/one

我希望它顯示/var/www/two

有誰知道這是一個PHP或Apache設置我可以改變?或者我無法以這種方式使用符號鏈接?

+1

你知道了嗎?我對這個相同的用例感興趣。 – kalenjordan

+0

Apache是​​否配置遵循symLink?像'選項FollowSymLinks' –

+0

我不認爲這與Apache有任何關係。這是一個PHP「功能」。如果你在命令行輸入'mkdir a; ln -s a b; php -r'chdir(「b」); echo getcwd();'',即使你將chdir()編輯爲'b',php也會告訴你你在一個名爲'a'的目錄中。 – edam

回答

8

OK算出來了。如果在瀏覽器上使用$_SERVER['SCRIPT_FILENAME']。在命令行上,你可以使用exec("pwd")

相關問題