From da3103379ee564b9382fda660bc0be09226c58fd Mon Sep 17 00:00:00 2001 From: predominant Date: Sat, 24 Apr 2010 11:01:07 +1000 Subject: [PATCH] Revert "Change URL Validation to use filter_var" This reverts commit 4e539160217f5520a1dcd1efe00290868e9850e2. --- cake/libs/validation.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cake/libs/validation.php b/cake/libs/validation.php index 94c67cc04..c1c17e9c9 100644 --- a/cake/libs/validation.php +++ b/cake/libs/validation.php @@ -666,11 +666,14 @@ class Validation { * @return boolean Success */ public static function url($check, $strict = false) { - $flags = array(FILTER_FLAG_HOST_REQUIRED); - if ($strict === true) { - $flags[] = FILTER_FLAG_SCHEME_REQUIRED; - } - return (boolean)filter_var($check, FILTER_VALIDATE_URL, $flags); + self::__populateIp(); + $validChars = '([' . preg_quote('!"$&\'()*+,-.@_:;=~') . '\/0-9a-z]|(%[0-9a-f]{2}))'; + $regex = '/^(?:(?:https?|ftps?|file|news|gopher):\/\/)' . (!empty($strict) ? '' : '?') . + '(?:' . self::$__pattern['IPv4'] . '|' . self::$__pattern['hostname'] . ')(?::[1-9][0-9]{0,3})?' . + '(?:\/?|\/' . $validChars . '*)?' . + '(?:\?' . $validChars . '*)?' . + '(?:#' . $validChars . '*)?$/i'; + return self::_check($check, $regex); } /**