From: Roland Häder Date: Wed, 21 Mar 2012 22:00:17 +0000 (+0000) Subject: Resurrected "legendary" function bigintval() from mailer 0.2.1-FINAL code with some... X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=28a6dc8b305ac7af2e85a76de6c195941351056c Resurrected "legendary" function bigintval() from mailer 0.2.1-FINAL code with some modifications for the core project --- 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]