X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdbm.php;h=fedc2e4fdb23881e694a7b2cbb3e218f5844614d;hb=bb59f105e719ef420a5cd0dcacfa3e3955dc5a0c;hp=6098dce739feec494587391382643249e39d4b4c;hpb=63610c7b73fcaf862adbf880d4968dd2b1678d9b;p=friendica.git diff --git a/include/dbm.php b/include/dbm.php index 6098dce739..fedc2e4fdb 100644 --- a/include/dbm.php +++ b/include/dbm.php @@ -49,5 +49,66 @@ class dbm { } return (is_array($array) && count($array) > 0); } + + /** + * @brief Callback function for "esc_array" + * + * @param mixed $value Array value + * @param string $key Array key + * @param boolean $add_quotation add quotation marks for string values + */ + private static function esc_array_callback(&$value, $key, $add_quotation) { + + if (!$add_quotation) { + if (is_bool($value)) { + $value = ($value ? '1' : '0'); + } else { + $value = dbesc($value); + } + return; + } + + if (is_bool($value)) { + $value = ($value ? 'true' : 'false'); + } elseif (is_float($value) OR is_integer($value)) { + $value = (string)$value; + } else { + $value = "'".dbesc($value)."'"; + } + } + + /** + * @brief Escapes a whole array + * + * @param mixed $arr Array with values to be escaped + * @param boolean $add_quotation add quotation marks for string values + */ + public static function esc_array(&$arr, $add_quotation = false) { + array_walk($arr, 'self::esc_array_callback', $add_quotation); + } + + /** + * Checks Converts any date string into a SQL compatible date string + * + * @param string $date a date string in any format + * @return string SQL style date string + */ + public static function date($date = 'now') { + $timestamp = strtotime($date); + + // Workaround for 3.5.1 + if ($timestamp < -62135596800) { + return '0000-00-00 00:00:00'; + } + + // The above will be removed in 3.5.2 + // The following will then be enabled + // Don't allow lower date strings as '0001-01-01 00:00:00' + //if ($timestamp < -62135596800) { + // $timestamp = -62135596800; + //} + + return date('Y-m-d H:i:s', $timestamp); + } } ?>