Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取当前正在执行的PHP脚本的URL?_Php - Fatal编程技术网

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

如何获取当前正在执行的PHP脚本的URL?,php,Php,如何获取当前正在执行的PHP脚本的URL 例如,URLhttp://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)。最简单的方法是什么?一个简单的谷歌搜索就能回答你的问题。这是结

如何获取当前正在执行的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
)。最简单的方法是什么?

一个简单的谷歌搜索就能回答你的问题。这是结果


一个简单的谷歌搜索就能回答你的问题。这是结果


它没有那么复杂,但它是这样的:

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

它没有那么复杂,但它是这样的:

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

我一直在寻找这个问题的答案,似乎没有一个简单的答案

然后我突然想到:这是因为不可能总是得到当前的脚本url


PHP可以在文件系统中的任何位置包含一个文件,只要运行该进程的用户有权访问它,它就可以工作。但是,这意味着可以在Web服务器的根目录之外包含脚本,因此不可能有url。我相信这就是为什么没有直接函数来做这件事的原因。

我一直在寻找这个问题的答案,似乎没有一个简单的答案

然后我突然想到:这是因为不可能总是得到当前的脚本url


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

$\u服务器['PHP\u SELF']、$\u服务器['REQUEST\u URI']和$\u服务器['SCRIPT\u NAME']返回带有脚本文件名的路径,而不仅仅是路径。我想知道是否有一个变量单独设置为路径。请参阅下面Mihai Iorga的解决方案。PHP没有现成的功能,但只需大约半分钟的时间,就可以获得所需的功能。这比在SO上发布所需的时间要短。$\u服务器['PHP\u SELF']、$\u服务器['REQUEST\u URI']和$\u服务器['SCRIPT\u NAME']使用脚本文件名返回路径,而不是仅返回路径。我想知道是否有一个变量单独设置为路径。请参阅下面Mihai Iorga的解决方案。PHP没有现成的功能,但只需大约半分钟的时间,就可以获得所需的功能。这比在SO上发布花费的时间要少。更好的解决方案可能是使用$\u SERVER['SCRIPT\u NAME']而不是$\u SERVER['REQUEST\u URI']。那么“https://”呢?@powerboy:您是否阅读了有关$\u服务器的PHP文档?我相信php.net和它的注释涵盖了您所要求的一切。更好的解决方案可能是使用$\u SERVER['SCRIPT\u NAME']而不是$\u SERVER['REQUEST\u URI']。那么“https://”呢?@powerboy:您是否阅读了有关$\u服务器的PHP文档?我相信php.net和它的评论涵盖了你所问的所有问题,但这并不能回答这个问题。一旦你有足够的钱,你将能够;相反嗯,这是一个没有答案的问题,我解释了为什么我认为是这样,但这并不能回答这个问题。一旦你有足够的钱,你将能够;相反嗯,这是一个没有答案的问题,我解释为什么我认为是这样。