当我们处于网址路径/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
完整的动态路径?
答案 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
explode
(http://www.w3schools.com/php/func_string_explode.asp)用针分隔字符串,并返回数组
array_key_exists
最简单的一个,自定义,检查数组中是否存在键/索引。