如何使用 PHP 捕获整个 URL? [复制]

Posted

技术标签:

【中文标题】如何使用 PHP 捕获整个 URL? [复制]【英文标题】:How do I capture the whole URL using PHP? [duplicate] 【发布时间】:2012-03-10 10:47:38 【问题描述】:

可能重复:php Get the Full URLHow do I capture the whole URL using PHP?

我想要整个 URL,包括 _GET 变量名称和值,例如 www.mywebsite.com/store.php?department=MENS

我在下面使用的代码只给了我没有 _GET 变量部分的 URL。

$url = $_SERVER['SERVER_NAME']; 
$page = $_SERVER['PHP_SELF'];
$page = $_POST['url'];
echo "http://".$url.$page; 

我希望能够准确地复制该 URL。

【问题讨论】:

转发How do I capture the whole URL using PHP? 【参考方案1】:
function currenturl() 
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") $pageURL .= "s";
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") 
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 else 
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

return $pageURL;

只需执行 $url=currenturl();就是这样

【讨论】:

点赞。港口也不错。顺便说一句,内联 if 语句可以帮助使这个更清洁 - 例如 $pageurl = ($_SERVER["HTTPS"] == "on") ? 'https' : 'http'; 是的,这样看起来更好。我实际上在任何人为的地方都使用内联 ifs,因为我有很多代码。但我编辑了一点只是为了更容易阅读【参考方案2】:
$url = (!empty($_SERVER['HTTPS']))
    ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] 
    : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

【讨论】:

以上是关于如何使用 PHP 捕获整个 URL? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 htaccess 重写后,如何在 PHP 中获取可见 URL(不是实际 URL)? [复制]

如何捕获 Enter 按键? [复制]

如何捕获 QML 绘图缓冲区

如何在 php 中获取当前浏览器 URL? [复制]

如何使用 Javascript ajax 发送 url? [复制]

php 如何通过 url 包含内部页面? [复制]