私は新しいCMSのためのURLルーティングスクリプトを作成しようとしていますが、私の強い側ではない正規表現を告白する必要があります。これまでのところ、私はエラーに陥ったり、結果が出なかったりします。 :id
:year
:slug
などのような特定のタグを使用している何を私が達成しようとしているURLルーティングの正規表現ヘルプ
...
誰も私を助けるか、これで正しい方向に私を導くことができる、それがするpreg_matchまたは類似を使用する方法です正しい "URLパターン"を見つけるための関数? Googleはかつてのためにそれを仕事をしていません:S
ADDED
例のURL http://www.mysite.com/post/2011/08/15/title-of-a-blogg-post/
私はルートのデータベースを持っており、一つのパターンは、たとえばpost/:year/:month/:day/:slug
のためであれば、私はそれがこのパターンに一致するようにしたいと特定のコントローラ、アクションを呼び出し、この例では特定の記事を呼び出します。
私は
$patterns = array(
":id" => "/^[0-9]*$/",
":year" => "/^([0-9]{4})*$/",
":year_short" => "/^([0-9]{2})*$/",
":month" => "/^([0-9]{2})*$/",
":day" => "/^([0-9]{2})*$/",
":slug" => "/^[a-zA-Z0-9 -]*$"
);
のようなルックスを作成した正規表現の配列私は私がに:id
を交換し、その後、URLパターンは私のルートテーブルに存在するかどうかを見つけるためにするpreg_matchを実行する必要があり数えます。しかし、私は正しい正規表現のパターンを使用しているのか、まったく失われたのか分かりません。 (私も$ _GETを使用する必要があるため)
私.htaccess
ファイルは、私はURLを取得し、$ _GET変数を除外するために、基本的にこれを使用
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
です。
このマニュアルでは、正規表現パターンhttp://www.php.net/manual/en/reference.pcre.pattern.syntax.phpについて説明しています。また、http://regular-expressions.info/も参考にしてください。また、http://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-worldのようなツールは、それらを作成するのに役立ちます。 – mario
あなたはあなたの質問にもっと詳しい情報を入力してください。入力内容、あなたのコードと説明とは何が働いていないのか、結果として正確に何が期待されますか? – stema
私が追加したコードがほんとうに私が達成しようとしていることを少し説明してくれることを願っています – dansige