📅  最后修改于: 2023-12-03 15:41:27.282000             🧑  作者: Mango
在 Web 开发中,有时需要获取当前 URL 的部分信息,这可能涉及到查询字符串的问题。在 PHP 中,可以使用一些方法来获取不带查询字符串的 URL。在本篇文章中,我们将简要介绍这些方法。
$_SERVER['REQUEST_URI'] 包含了当前页面的 URL,包括查询字符串部分。我们可以通过解析字符串来获取不带查询字符串的 URL:
$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$parts = parse_url($current_url);
$url_without_query_string = "{$parts['scheme']}://{$parts['host']}{$parts['path']}";
解释:
parse_url
函数将 URL 解析成一个关联数组。这个数组包含了 URL 的各个部分,如 scheme、host、path、query 等。$_SERVER['PHP_SELF'] 包含了当前页面的路径部分,并且不包括查询字符串。我们可以利用这个变量来获取不带查询字符串的 URL:
$url_without_query_string = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$_SERVER['SCRIPT_NAME'] 与 $_SERVER['PHP_SELF'] 类似,也包含了当前页面的路径部分,并且不包括查询字符串。我们可以利用这个变量来获取不带查询字符串的 URL:
$url_without_query_string = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
以上是获取不带查询字符串的 URL 的三种方法。在实际开发中,从安全性和可靠性考虑,建议使用 $_SERVER['REQUEST_URI'] 加上解析字符串的方式来获取不带查询字符串的 URL。
$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$parts = parse_url($current_url);
$url_without_query_string = "{$parts['scheme']}://{$parts['host']}{$parts['path']}";
以上代码片段可以在您的 PHP 应用程序中轻松使用,希望对您有所帮助!