:私が欲しいもの正規表現と末尾のスラッシュ
/test\/([A-Za-z]+)\/([A-Za-z]+)\/?([A-Za-z]+)?\/?/
=>
test/\1_\2/\3/
がありwheterそれが唯一のhttp://domain.com/test
が言うならば、それは問題ではないということであり、後続のスラッシュかどうか - どうすればいいですか?
EDIT:
私はこれをやっている:
を、私はこの配列を持っている:私は何
$routing = array(
'/test\/([A-Za-z]+)\/([A-Za-z]+)\/?([A-Za-z]+)?\/?/' => 'test/\1_\2/\3/',
'/error\/([0-9]+)/' => 'error/error_\1',
'/sitemap\.html/' => 'sitemap',
'/search\/([^\/]+)?/' => 'search/view/$1',
);
は私がルートにURLをこのアクションを実行することを、次のとおりです。
global $routing;
foreach ($routing as $pattern => $result) {
if (preg_match($pattern, $url)) {
return preg_replace($pattern, $result, $url);
}
}
return ($url);
私のフレームワークはルーティングでこれを行います:
など。 コントローラ/ FUNC /ン/パラメータ=機能/ func_tion /パラメータ:urlは21 テスト:: stack_helloように設定(21)
に=ある が実際に テスト/スタック/ハロー/することができます。
を示し
。そうすれば、すべての '/'文字をエスケープする必要はありません。 –
スラッシュで終了する必要があります。それ以外の場合は、解析エラーが発生します。 :) –
それは必要ありません:http://php.net/manual/en/regexp.reference.delimiters.php – mario