变量规则的路由定义简化 直接使用 '\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)
{
// 检查完整规则定义
if (isset($pattern['__url__']) && !preg_match($pattern['__url__'], $url)) {
if (isset($pattern['__url__']) && !preg_match('/^' . $pattern['__url__'] . '/', $url)) {
return false;
}
// 检测是否设置了参数分隔符
@@ -551,7 +551,7 @@ class Route
} else {
$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;
}

View File

@@ -201,7 +201,7 @@ class Url
}
}
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;
}