📜  获取不带查询字符串的 url php (1)

📅  最后修改于: 2023-12-03 15:41:27.282000             🧑  作者: Mango

获取不带查询字符串的 URL (PHP)

在 Web 开发中,有时需要获取当前 URL 的部分信息,这可能涉及到查询字符串的问题。在 PHP 中,可以使用一些方法来获取不带查询字符串的 URL。在本篇文章中,我们将简要介绍这些方法。

使用 $_SERVER['REQUEST_URI']

$_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']}";

解释:

  • 第一行获取当前页面的完整 URL,包括查询字符串部分。
  • 第二行使用 parse_url 函数将 URL 解析成一个关联数组。这个数组包含了 URL 的各个部分,如 scheme、host、path、query 等。
  • 第三行拼接出不带查询字符串的 URL。这里我们只用了 scheme、host、path 这些部分,忽略了其他部分。
使用 $_SERVER['PHP_SELF']

$_SERVER['PHP_SELF'] 包含了当前页面的路径部分,并且不包括查询字符串。我们可以利用这个变量来获取不带查询字符串的 URL:

$url_without_query_string = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
使用 $_SERVER['SCRIPT_NAME']

$_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 应用程序中轻松使用,希望对您有所帮助!