变量规则的路由定义简化 直接使用 '\d+' 替代原来的 '/^\d+$/'

__url__ 完整URL正则规则定义 默认不会加上后面的 $
This commit is contained in:
thinkphp
2016-01-09 15:16:03 +08:00
parent d9a091eb24
commit c869d431f9
2 changed files with 3 additions and 3 deletions

View File

@@ -422,7 +422,7 @@ class Route
private static function checkRule($rule, $route, $url, $pattern) private static function checkRule($rule, $route, $url, $pattern)
{ {
// 检查完整规则定义 // 检查完整规则定义
if (isset($pattern['__url__']) && !preg_match($pattern['__url__'], $url)) { if (isset($pattern['__url__']) && !preg_match('/^' . $pattern['__url__'] . '/', $url)) {
return false; return false;
} }
// 检测是否设置了参数分隔符 // 检测是否设置了参数分隔符
@@ -551,7 +551,7 @@ class Route
} else { } else {
$name = substr($val, 1); $name = substr($val, 1);
} }
if (isset($m1[$key]) && isset($pattern[$name]) && !preg_match($pattern[$name], $m1[$key])) { if (isset($m1[$key]) && isset($pattern[$name]) && !preg_match('/^' . $pattern[$name] . '$/', $m1[$key])) {
// 检查变量规则 // 检查变量规则
return false; return false;
} }

View File

@@ -201,7 +201,7 @@ class Url
} }
} }
foreach ($vars as $name => $val) { foreach ($vars as $name => $val) {
if (isset($pattern[$name]) && !preg_match($pattern[$name], $val)) { if (isset($pattern[$name]) && !preg_match('/^' . $pattern[$name] . '$/', $val)) {
// 检查变量规则 // 检查变量规则
return false; return false;
} }