PHPでURLルーターを作成しようとしていますが、これはdjangoのように動作します。PHPのpreg_match URLの一部
問題は、私はPHPの正規表現をよく知らないです。
私はこのようなURLにマッチできるようにしたいと思います:
/post/5/
/article/slug-goes-here/
私は正規表現の配列を持っている:
$urls = array(
"(^[/]$)" => "home.index",
"/post/(?P<post_id>\d+)/" => "home.post",
);
配列の最初の正規表現は、自宅に一致するように動作しますページは/
ですが、私は2番目のものを動作させることができません。ここで
は、私はそれらを一致させるために使用していたコードです:
foreach($urls as $regex => $mapper) {
if (preg_match($regex, $uri, $matches)) {
...
}
}
私も上記の例では、私はURLでpost_id
と一致するようにしようとしていますことに注意してください:/post/5/
私は5
を渡すことができるように私の方法に沿って。
正規表現は、適切な区切り文字を持っている必要があり – stillstanding