如何使用PHP获取当前脚本的URL?

15

如何使用PHP获取我的脚本的当前URL?

6个回答

32

请参阅PHP 获取当前URL:

有时获取当前URL并在应用程序中使用它不是一件很简单的事情。这里是我用来获取当前URL并在脚本中使用它的代码片段。当前URL(无论是http还是https)现在是一个本地变量,您可以根据需要进行操作。

$url = "http".(!empty($_SERVER['HTTPS'])?"s":"").
"://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

注意:在将此值用于任何敏感操作(如 SQL 查询)之前,您应该先进行必要的处理。


服务器端口缺失。 - aLx13
1
如果您在脚本后使用重写,例如/x.php/123/456,那么使用REQUEST_URI将包括这些参数。SCRIPT_NAME可能更好。 - Ellert van Koperen
链接已失效... - ericek111

6
对于www.example.com/files/script.php: $_SERVER['SCRIPT_NAME'] 的值为 /files/script.php。
如果您需要当前目录的 URL:
dirname($_SERVER['SCRIPT_NAME']) 的值为 /files。

3
如果你想知道服务器上的脚本名称,那么...
$file = $_SERVER["SCRIPT_NAME"];
echo $file;

$_SERVER["SCRIPT_NAME"]将为您提供当前执行脚本的路径,该路径与服务器相关,而不是浏览器的URL。


2
当您需要这样的信息时,通常可以方便地查看phpinfo()的输出,然后阅读那些看起来不错的项目的文档。
请记住,有些项目在您的服务器上可能是正确的,但在其他服务器上可能略有不同。这取决于操作系统、http服务器等。

1

你好,这是你问题的解决方案

//通过此代码获取页面的URL

$url=$_SERVER['REQUEST_URI'];
echo "$url<br />";

"

//它将打印

//通过此获取主机

"
$host=$_SERVER['HTTP_HOST'];
echo "$host<br />";

//您可以通过此代码获取完整的URL

$fullurl="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $fullurl;

1

假设您正在访问

如何使用PHP获取当前脚本的URL?

然后 echo $_SERVER['SERVER_NAME']; // 这将返回主机名,即:

stackoverflow.com/

echo $_SERVER['REQUEST_URI']; // 它将仅从当前URL返回文件名 将返回以下内容

"/questions/1871770/how-do-i-get-the-current-url-of-my-script-using-php"

而不是主机名。


1
是的,PHP_SELF 只会返回文件本身,而不是其他参数。如果需要完整路径,则必须使用 "REQUEST_URI",我已经编辑了我的答案。 - ravindrakhokharia
2
更不用说PHP_SELF容易受到XSS攻击了。 - Josh Sandlin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接