下面的代码工作得很好,当我们在一个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,检查键/索引是否存在于数组