如何使用 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)? [复制]