所以我想我需要为此提交一个新问题......
这是我的老问题:PHP - Get path minus root
我需要在PHP中使用以下任何一种URL ...
http://kenthomes.net/plan_detail.php?mod=39
http://kenthomes.net/Amelia-Cove
在离开我之后得到一切...
"plan_detail.php?mod=39" // If there is no alias for that page
OR
"Amelia-Cove" // If that page has an alias being applied
实际上,由于别名,它们是同一页面,但并非所有这些页面都有与之关联的别名,例如......
http://kenthomes.net/plan_detail.php?mod=52
不像......
http://kenthomes.net/Amelia-Cove
目前我正在使用......
trim($_SERVER['REQUEST_URI'],'/')
给了我......
"Amelia-Cove" // Which is fine.
OR
"plan_detail.php" // Which is not okay.
我需要..
"Amelia-Cove" // Which is fine.
OR
"plan_detail.php?mod=39" // Which is fine.
我该怎么做?
答案 0 :(得分:5)
您可以通过parse_url()
例如;
$parts = parse_url('http://kenthomes.net/plan_detail.php?mod=39');
print_r($parts);
应该给你这样的东西:
Array
(
[scheme] => http
[host] => kenthomes.net
[path] => /plan_detail.php
[query] => mod=39
)
您可以使用它来创建自己的网址,其中包含您需要的部分
答案 1 :(得分:1)
$_SERVER["REQUEST_URI"]
仅包含URI。
如果您还需要?
之后的部分,则还需要使用$_SERVER["QUERY_STRING"]
。
使用:
trim($_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING'], '/');
答案 2 :(得分:0)
您可以通过$_SERVER['QUERY_STRING']
答案 3 :(得分:0)
使用$_SERVER['REQUEST_URI']
附加$_SERVER['QUERY_STRING']
。
答案 4 :(得分:0)
parse_url
,如果你只是想要最右边的话,使用str_split
就足够了。
$data = parse_url($url, PHP_URL_PATH);
应该够了。
否则,如果响应当前请求,$_SERVER['REQUEST_URI']
可能会起作用,因为这是整个URI。
答案 5 :(得分:0)
你可以试试这个:
$uri = $_SERVER['REQUEST_URI'];
$qs = $_SERVER['QUERY_STRING'];
echo trim($uri . $qs, '/');