如何在 PHP 中获取当前页面的完整 URL?
大家好!我是一名 PHP 新手开发者,遇到了一个问题。我需要获取当前页面的完整 URL,包括协议(http 或 https)、域名、路径以及所有 GET 参数。我尝试了几种方法,但每次都不太对。
我试过使用 `$_SERVER['REQUEST_URI']`——它只返回路径,比如 `/page.php?id=5`,没有域名和协议。而 `$_SERVER['HTTP_HOST']` 只提供域名,比如 `example.com`。如果我只是通过 `echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI"];` 将它们拼接起来,那么在通过 HTTPS 工作时协议就会出错——仍然是 `http://`。
我还注意到 `$_SERVER['HTTPS']` 有时未定义,尤其是在本地服务器上。而且如果页面通过 `www` 或没有 `www` 打开,也会影响结果。此外,一些主机使用端口,比如 `localhost:8080`,也需要考虑进去。
总之,我搞糊涂了。请告诉我如何在 PHP 中正确且可靠地构建完整 URL,使其在任何情况下都能正常工作。