PHP - 获取URL的结尾

时间:2013-04-05 22:15:12

标签: php post get

所以我想我需要为此提交一个新问题......

这是我的老问题: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.

我该怎么做?

6 个答案:

答案 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']

PHP: $_SERVER - Manual

答案 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, '/');