From 28a6dc8b305ac7af2e85a76de6c195941351056c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Wed, 21 Mar 2012 22:00:17 +0000 Subject: [PATCH] Resurrected "legendary" function bigintval() from mailer 0.2.1-FINAL code with some modifications for the core project --- .../main/class_BaseFrameworkSystem.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index 15040a6b..255a7f61 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -1988,6 +1988,31 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Return it return $hash; } + + /** + * Checks whether the given number is really a number (only chars 0-9). + * + * @param $num A string consisting only chars between 0 and 9 + * @param $castValue Whether to cast the value to double. Do only use this to secure numbers from Requestable classes. + * @param $assertMismatch Whether to assert mismatches + * @return $ret The (hopefully) secured numbered value + */ + public function bigintval ($num, $castValue = true, $assertMismatch = false) { + // Filter all numbers out + $ret = preg_replace('/[^0123456789]/', '', $num); + + // Shall we cast? + if ($castValue === true) { + // Cast to biggest numeric type + $ret = (double) $ret; + } // END - if + + // Has the whole value changed? + assert(($assertMismatch === true) && ('' . $ret . '' != '' . $num . '') && (!is_null($num))); + + // Return result + return $ret; + } } // [EOF] -- 2.30.2