如何阅读SERVER ['REQUEST_URI完整的动态路径?

时间:2016-09-04 09:41:26

标签: php

当我们处于网址路径/sard/时,以下代码效果很好,例如www.example.com/sard/如果我的网址转到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完整的动态路径?

2 个答案:

答案 0 :(得分:1)

你可以使用strpos。

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

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

答案 1 :(得分:1)

你的意思是在你的陈述中使用第二段来操纵。

在这种情况下使用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使用回调过滤数组,使用默认回调作为修剪,了解更多信息here

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

array_key_exists最简单的一个,自定义,检查数组中是否存在键/索引。