如何检查request_uri的内容

时间:2012-12-20 07:36:55

标签: php url

您好我想知道如何避免在request_uri中发布双重帖子。

作为一个例子:

http://www.example.com/foo/foo/...

应该只是:

http://www.example.com/foo/...

例如,我想创建一个检查,我需要一个标题函数,需要在它标题之前检查。如果url-string包含双重发布,它不应该标题。所以检查会是这样的:

$host = $_SERVER['HTTP_HOST'];
$url = $_SERVER['REQUEST_URI'];
$urlArray = explode('/', $url);
$urlArrayUnique = array_unique($urlArray);
$urlUnique = implode('/', $urlArrayUnique);

if (isset($_SESSION['a'])){
    $var = $_SESSION['a'];
    if($url !== $urlUnique){
        header ('Location:'.$host.'/'.$var.'/'.$basename);
        exit;
    }
}

如果有人可以帮助我,我真的很感激。

非常感谢。

2 个答案:

答案 0 :(得分:0)

尝试以下代码,使用爆炸并将其唯一且内爆添加到网址中....

$url = $_SERVER['REQUEST_URI'];

$urlArray = explode('/', $url);

$urlArrayUnique = array_unique($urlArray);

$urlUnique = implode('/', $urlArrayUnique);

你也可以在$ urlArray中获得更多值......

答案 1 :(得分:0)

您可以根据需要修改以下代码:

$host = $_SERVER['HTTP_HOST'];
$url = $_SERVER['REQUEST_URI'];
$urlArray = explode('/', $url);
$lai = max(array_keys($urlArray));//here we get the max array index    
if($urlArray[$lai-1] != $urlArray[$lai])header('Location:'.$host.'/'.$var.'/'.$basename);