一尘不染

获取PHP中的完整URL

php

这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。

我使用以下代码来获取完整的URL:

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

问题在于,我在自己的中使用了一些掩码.htaccess,因此我们在URL中看到的并不总是文件的真实路径。

我需要的是获取URL,写在URL中的内容,仅此而已-完整的URL。

我需要了解它在Web浏览器的导航栏中的显示方式,而不是服务器上文件的真实路径。


阅读 353

收藏
2020-05-26

共1个答案

一尘不染

看一下$_SERVER['REQUEST_URI'],即

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

请注意,双引号字符串语法完全正确

如果要同时支持HTTP和HTTPS,则可以使用

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

编者注: 使用此代码具有 安全性 。客户端可以将HTTP_HOST和REQUEST_URI设置为所需的任意值。

2020-05-26