我在switch语句中创建一个preg_match()有一些问题。带有preg_match的PHP switch语句
我想编写匹配/ oop/page/view/[some-number]的preg_match。
现在它的工作,如:
如果我在浏览器中运行http://example.com/oop/page/view/1它显示“404页”。 而当我运行一些地址,例如http://example.com/oop/page/view/test甚至/ oop /测试其运行第二种情况,但不知道如何。可以肯定的事情是错误的,我的正则表达式expresion ..
public function check(){
$url = filter_input(INPUT_GET, 'url');
switch ($url) {
case '':
echo 'HomePage';
break;
case preg_match('#^/oop/page/view/\d+$#', $url):
echo $url;
break;
default:
echo '404 page';
break;
}
}
随着inproper使用'之开关,'^/OOP /网页/视图/ \ d + $'不会的匹配'http:// example.com/oop/page/view/1',因为'^'锚点。删除'^'它应该可以工作。 https://3v4l.org/lHgqm – AbraCadaver
@AbraCadaver谢谢你的回答,但正如你可以看到我没有用http://检查完整地址,但只是url参数在我的情况下,等于$ _SERVER ['REQUEST_URI “]。 –
OK,习惯显示准确的数据,包含什么变量等... – AbraCadaver