如何获取静态的路由网址,当我使用$ _SERVER [“PHPSELF”]时,它会返回网址的实际网页,例如
/show_products.php
但我的网址是
http://mysite.com/browse/department/?pid=1&order_by=a_z&filter=1
我想从网址获取的只是这个
http://mysite.com/browse/department/
并且我希望能够获取网址的部门部分,因此我的问题分为两部分
答案 0 :(得分:1)
必须从请求URI中单独处理URL方案和主机名部分:
// in your example, this results in "http://"
$scheme = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] <> 'off') ? 'https://' : 'http://';
// in your example, this results in "mysite.com"
$hostname = $_SERVER['SERVER_NAME'];
// in your example, this results in "/browse/department/"
$uri = $_SERVER['REQUEST_URI'];
把各个部分放在一起:
// in your example, this results in "http://mysite.com/browse/department/"
echo $scheme . $hostname . $uri;
详细了解$_SERVER[]
数组中的各种值,或只输出phpinfo()
,以便轻松搜索$_SERVER[]
数组中所需的值。
答案 1 :(得分:0)
查看$_SERVER['REQUEST_URI']
以获取“为了访问此页面而提供的URI”per the docs。
请注意,REQUEST_URI不包含主机名,您需要拼接$ _SERVER ['SERVER_NAME']。
然后,php的parse_url()
可能是最简单的方式来为您提供不同的部分,并快速深入了解您的需求。从url(/ browse / department)获得路径后,您可以在“/”上展开以获取各个路径段。