在 PHP 中获取当前完整的 URL
-
在 PHP 中使用
http_build_url()
获取当前的 Url -
在 PHP 中使用
$_SERVER[]
来获取当前的 URL -
在 PHP 中使用
$_SERVER['HTTPS']
来获取当前的 URL - 在 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.com
、www.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 的方法最合适。在使用一个特定的方法时,可能会有不同的使用情况和效率。最好的选择可能是尝试每一种方法,然后选择最灵活和最有效的方法来满足你的编程方案。