📅  最后修改于: 2023-12-03 15:18:29.193000             🧑  作者: Mango
在编写PHP应用程序时,我们经常需要获取当前URL。PHP提供了几种方法来获取当前页面URL。在本文中,我们将讨论如何在PHP中获取当前页面URL。
$_SERVER['PHP_SELF']是PHP的全局变量,它包含了当前脚本的文件名。通过连接该变量与服务器的HTTP_HOST变量,你可以获取当前页面的URL。
以下代码演示了如何使用$_SERVER['PHP_SELF']获取当前页面URL:
$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
此方法不适用于HTTPS协议,因为$_SERVER['PHP_SELF']返回的URL是不安全的。使用此方法时,要确保在处理用户提交的任何数据时进行适当的数据验证和过滤,以防止跨站点脚本攻击。
$_SERVER['REQUEST_URI']包含了访问当前页面所需的URI。通过连接该变量与服务器的HTTP_HOST变量,您可以获取当前页面的完整URL。
以下代码演示了如何使用$_SERVER['REQUEST_URI']获取当前页面URL:
$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
与$_SERVER['PHP_SELF']相比,$_SERVER['REQUEST_URI']更可取,因为它适用于任何协议,包括HTTPS协议。
$_SERVER['QUERY_STRING']包含了当前URL中的查询字符串。将该变量连接到服务器的HTTP_HOST变量,即可获取当前页面的完整URL。
以下代码演示了如何使用$_SERVER['QUERY_STRING']获取当前页面URL:
$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?".$_SERVER['QUERY_STRING'];
这种方法只在当前页面存在查询参数时有效。
parse_url()函数可以解析URL并返回其各个部分。该函数将URL解析为协议、主机、路径和查询字符串等部分。
以下代码演示了如何使用parse_url()函数获取当前页面URL:
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$parsed_url = parse_url($url);
$current_url = $parsed_url['scheme']."://".$parsed_url['host'].$parsed_url['path']."?".$parsed_url['query'];
该方法可以适用于任何有效的URL。
通过上面四种方法,我们可以获取当前页面的URL,以便在PHP应用程序中使用。鉴于网站安全性问题,我们应该使用适当的方法来保护我们的应用程序免受威胁。