mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
改进路由变量定义 支持 <name><id?> 可选变量定义
This commit is contained in:
@@ -599,9 +599,15 @@ class Route
|
|||||||
$var = [];
|
$var = [];
|
||||||
foreach ($m2 as $key => $val) {
|
foreach ($m2 as $key => $val) {
|
||||||
// val中定义了多个变量 <id><name>
|
// val中定义了多个变量 <id><name>
|
||||||
if (false !== strpos($val, '<') && preg_match_all('/<(\w+)>/', $val, $matches)) {
|
if (false !== strpos($val, '<') && preg_match_all('/<(\w+(\??))>/', $val, $matches)) {
|
||||||
foreach ($matches[1] as $name) {
|
foreach ($matches[1] as $name) {
|
||||||
$val = str_replace('<' . $name . '>', '(' . $pattern[$name] . ')', $val);
|
if (strpos($name, '?')) {
|
||||||
|
// 可选
|
||||||
|
$name = substr($name, 0, -1);
|
||||||
|
$val = str_replace('<' . $name . '?>', '((' . $pattern[$name] . ')?)', $val);
|
||||||
|
} else {
|
||||||
|
$val = str_replace('<' . $name . '>', '(' . $pattern[$name] . ')', $val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!preg_match('/^' . $val . '$/', $m1[$key])) {
|
if (!preg_match('/^' . $val . '$/', $m1[$key])) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user