From cfe332af2f0e9820e70c9301d1779be8fcaa8d9e Mon Sep 17 00:00:00 2001 From: thinkphp Date: Thu, 31 Mar 2016 11:00:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84Url=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=AF=B9=E5=8A=A8=E6=80=81=E5=8F=98=E9=87=8F=E5=92=8C=E9=9D=99?= =?UTF-8?q?=E6=80=81=E5=8F=98=E9=87=8F=E7=9A=84=E6=B7=B7=E5=90=88=E4=BC=A0?= =?UTF-8?q?=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Url.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/library/think/Url.php b/library/think/Url.php index 3339fa86..2c2078c6 100644 --- a/library/think/Url.php +++ b/library/think/Url.php @@ -214,18 +214,19 @@ class Url $url = str_replace('$', '[--think--]', $url); } // 检查变量匹配 + $array = $vars; if ($pattern && self::pattern($pattern, $vars)) { foreach ($pattern as $key => $val) { if (isset($vars[$key])) { $url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key . '', '<' . $key . '>'], $vars[$key], $url); - unset($vars[$key]); + unset($array[$key]); } else { $url = str_replace(['[:' . $key . ']', '<' . $key . '?>'], '', $url); } } - return $url; - } elseif (!empty($param) && $param == $vars) { - $vars = []; + } + if (!empty($param) && array_intersect($param, $array) == $param) { + $vars = array_diff($array, $param); return $url; } }