私は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/testを実行しても2番目のケースが実行されていて、まだわかりません。何かが私の正規表現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;
}
}
'^'アンカーのために 'http:// example.com/oop/page/view/1'にマッチします。 '^'を削除すれば動作します。 https://3v4l.org/lHgqm – AbraCadaver
@AbraCadaver答えてくれてありがとうございますが、私がhttp://で完全なアドレスを確認しているわけではありませんが、url paramだけ$ _SERVER ['REQUEST_URI ']。 –
OK、正確なデータ、変数などを表示するのに慣れてください。 – AbraCadaver