获取适用于所有服务器的php脚本目录名称

时间:2012-10-06 10:36:23

标签: php

我在路径中有一个index.php文件:http://www.example.com/inc/index.php

现在我需要获取路径直到inc目录,如http://www.example.com/inc/

这是我在index.php中写的行

'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . '/'

它在apache服务器上工作。它无法在我的客户端系统中运行。他不确定他正在使用哪个服务器,但是他告诉了除apache之外的其他内容。

非常感谢任何输入。提前致谢

3 个答案:

答案 0 :(得分:1)

这将给出,

http://www.example.com/inc/

 <?php

     echo "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/';

 ?>

实际上,什么不起作用?如果未通过http://www.example.com/inc/加载索引页,则index.php未在服务器中设置为默认值。如果它是我认为的IIS服务器,默认页面是index.html,default.html,default.asp - 请检查一下,而不是index.php

进一步阅读,

http://www.htmlgoodies.com/beyond/webmaster/article.php/3473251/Index-or-Default.htm

答案 1 :(得分:0)

dirname函数正在查看文件系统。如果您正在尝试解析URL以进入目录,我建议您使用以下内容:

$pathComponents = explode('/', $_SERVER['PHP_SELF']);
array_pop($pathComponents);
$dirName = implode('/', $pathComponents) . '/';

这应该返回'inc /'

答案 2 :(得分:0)

您是否尝试过$ _SERVER ['PATH_TRANSLATED']?请注意,在Apache 2上,未明确设置(需要配置设置)。见这里:PHP $_SERVER manual

在我看来,它可能会对您有所帮助,但我无法访问我的托管空间中的httpd.conf文件进行确认。

希望这有帮助!

Kobus