如何读取SERVER['REQUEST_URI完整动态路径


How to read SERVER['REQUEST_URI full dynamic path?

下面的代码工作得很好,当我们在一个url路径/sard/,例如www.example.com/sard/,但如果我的url到www.example.com/sard/page2,它打破了。

<?php
$twitter = '';
switch ($_SERVER['REQUEST_URI']) {
    case '/sard/':
        $twitter = 'example';
        break;
    case '/pie/':
        $twitter = 'example_2';
        break;
    default:
        break;
}
?>

我怎样才能使它始终读取uri全动态路径?

可以使用strpos

if(strpos($_SERVER['REQUEST_URI'], '/sard') === 0){
    echo 'oke';
}

这将匹配所有以/sard开头的url。因为/sard的位置是0

你的意思是在你的语句中使用第二段来操作。

在这种情况下最好使用explode

$getURI     = $_SERVER["REQUEST_URI"];
$expGetUri  = array_filter(explode("/", $getURI));
$secondSeg  = array_key_exists(1, $expGetUri) ? $expGetUri[1] : "";
switch($secondSeg) {
    case "sard" : //statements goes here
        break;
    case "otheruri" : //statements goes here
        break;
    default : //your default statement
}

希望这能正常工作。

用语

array_filter用一个回调来过滤数组,使用默认的回调作为trim,在这里了解更多关于

explode (http://www.w3schools.com/php/func_string_explode.asp)用针分隔字符串,并返回数组

array_key_exists最简单的一个,self - defining,检查键/索引是否存在于数组