我在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