在 PHP 中获取当前完整的 URL

Krissnaawat Kaewsanmuang 2023年1月30日 2021年2月7日
PHP
  1. 在 PHP 中使用 http_build_url() 获取当前的 Url
  2. 在 PHP 中使用 $_SERVER[] 来获取当前的 URL
  3. 在 PHP 中使用 $_SERVER['HTTPS'] 来获取当前的 URL
  4. 在 PHP 中获取包括参数的当前 URL
  5. 结束语
在 PHP 中获取当前完整的 URL

本教程介绍了如何在 PHP 编程语言中获取当前的完整 URL。获取 PHP 的完整 URL 可以有很多用例。我们要根据查询参数渲染出网页的内容。我们可能需要重定向或刷新整个页面。因此,当涉及到网页编程时,一个完整的 URL 可以是必不可少的价值。

在这里,我们将讨论在 PHP 编程中获得完整 URL 的不同方法。

一般来说,有几个步骤是我们必须知道的,以获得当前正在运行的页面的完整 URL,下面给出。

  • 我们需要创建一个 PHP 变量,以字符串格式存储 URL。
  • 我们需要检查服务器是否启用了 HTTPS。如果启用了,那么我们需要在 URL 字符串中附加 HTTPS。如果没有启用 HTTPS,我们需要在 URL 字符串中追加 HTTP
  • 我们还需要将://符号追加到 URL 中。
  • 我们需要追加服务器的 HTTP_HOST 名。HTTP_HOST 名就是我们所请求的主机,例如 www.google.comwww.exampledomain.com 等。
  • 我们需要在 URL 字符串上追加 REQUEST_URI。REQUEST_URI 是我们请求的资源,例如/index.php 等。

现在,我们讨论一下 PHP 编程生态中最有效的获取当前完整 URL 的方法。

在 PHP 中使用 http_build_url() 获取当前的 Url

这个解决方案非常简单。我们可以使用 PHP 内置函数,名为 http_build_url()。这个方法对 HTTP 和 HTTPs 都有效。

$link =  http_build_url();

这个函数用来建立一个 URL。它总共接受四个参数。

  • url。这个参数以字符串或关联数组的形式表示 URL。它的返回值类似于 parse_url()
  • parts:这个参数和第一个参数一样。该参数与第一个参数相同。
  • flags:这个参数与第一个参数相同。是二进制 HTTP_URL 常量的位掩码。
  • new_url。如果设置了这个参数,就会像 parse_url() 返回的那样,用组成的 URL 的部分来填充。

总的来说,这个方法在成功的时候会以字符串的形式返回新的 URL,否则失败的时候会返回 False

在 PHP 中使用 $_SERVER[] 来获取当前的 URL

另一种方法是使用全局变量 $_SERVER[]$_SERVER 是 PHP 的一个内置变量,用来获取当前页面的 URL。它也是一个超全局变量。因此,它在所有范围内都是可用的。

我们只需将参数 REQUEST_URI 传递给这个变量,如下例所示。

例子:

$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
  • $_SERVER[HTTP_HOST] 代表主机名或域名,如 https://www.delftstack.com/
  • $_SERVER[REQUEST_URI] 代表 URI 如/dashboard/phpinfo.php

在 PHP 中使用 $_SERVER['HTTPS'] 来获取当前的 URL

这里是另一种明确的硬代码格式,在 PHP 中获取当前的 URL。

全局变量 $_SERVER['HTTPS'] 代表 HTTPS 的状态。因此,我们可以在 isset() 函数中使用它来检查 HTTPS 是否存在。这将帮助我们知道一个 URL 中是否启用了 HTTPS。同时,通过检查 $_SERVER['HTTPS'] 的值,我们可以决定是否在 URL 中添加 “https”。

这两个例子都显示了 HTTPS 的检测。下面的例子是长格式。

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

或者你也可以使用下面例子中的短格式。

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

在 PHP 中获取包括参数的当前 URL

为了得到包括路径、参数和查询字符串在内的整体 URL,我们可以使用 http_build_url(),如下例所示。

$all_in_address_bar = http_build_url();

结束语

本教程演示了在 PHP 编程中获取当前 URL 的一些最有效的方法。这些例子肯定会帮助你理解其中的格式、机制和语法。最常用的获取当前 URL 的技术是使用超级全局变量 $_SERVER。使用这个,你可以完全控制语法格式。然而,这个技术与其他技术相比有点复杂。现在,你可以根据你的 PHP 编程方案来决定哪种获取当前 URL 的方法最合适。在使用一个特定的方法时,可能会有不同的使用情况和效率。最好的选择可能是尝试每一种方法,然后选择最灵活和最有效的方法来满足你的编程方案。