2011-09-05 82 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")

相关问题