2010-05-25 85 views
0

如何获取当前正在执行的PHP脚本的URL?如何获取当前正在执行的PHP脚本的URL?

例如,URL http://www.domain.com/folder/script.php发送请求到/var/www/domain/folder/script.php

script.php中,我想回显http://www.domain.com/folder/(不是/var/www/domain/folder/,而不是http://www.domain.com/folder/script.php)。什么是最简单的方法来做到这一点?

回答

2

这不是复杂的,但这里有云:

<?php 
    $scriptFolder = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://'; 
    $scriptFolder .= $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']); 
    echo $scriptFolder; 
?> 
+2

可能你想学习dirname()函数 – 2010-05-25 05:58:08

+1

更好的解决方案可能使用$ _SERVER ['SCRIPT_NAME']而不是$ _SERVER ['REQUEST_URI']。那么“https://”呢? – powerboy 2010-05-25 06:04:20

+1

@powerboy:你读过关于$ _SERVER的PHP文档吗?我相信php.net及其评论涵盖了你所要求的一切。 – 2010-05-25 06:08:15

3

一个简单的Google搜索就能解答您的问题。结果如下。

http://php.about.com/od/learnphp/qt/_SERVER_PHP.htm

+0

$ _SERVER ['PHP_SELF'],$ _SERVER ['REQUEST_URI']和$ _SERVER ['SCRIPT_NAME']以脚本文件名返回路径,而不是单独路径。我想知道是否有单独设置为路径的变量。 – powerboy 2010-05-25 05:45:05

+0

@powerboy nope。 – 2010-05-25 05:57:18

+1

请参阅下面的Mihai Iorga解决方案。 PHP并没有提供这种功能,但大约半分钟的时间,您就可以获得所需的功能。这比在SO上发布花费的时间更少。 – 2010-05-25 05:58:46

0

我一直在寻找这个问题的答案,似乎有不容易的。

然后它打我:这是因为它并不总是可以得到当前的脚本网址。

PHP可以在文件系统中的任何位置包含一个文件,只要运行该进程的用户可以访问它,它就可以工作。但是,这意味着可以在网络服务器的根目录之外包含脚本 - 因此不可能有网址。我相信那是因为没有直接的功能来做到这一点。

+0

这并不是问题的答案。一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你将能够[评论任何职位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/13920864) – pedrouan 2016-10-09 07:15:39

+0

那么,这是一个没有答案的问题,我解释了为什么我认为是这样。 – 2016-10-11 21:14:56

相关问题