From: Robert Sesek Date: Sun, 12 Jun 2011 00:12:13 +0000 (-0400) Subject: Add functions.php, copied from phalanx X-Git-Tag: api-2~86 X-Git-Url: https://src.bluestatic.org/?a=commitdiff_plain;h=9ad6f36f3cb83b56535775e8c624de90d319e8eb;p=hoplite.git Add functions.php, copied from phalanx --- diff --git a/base/functions.php b/base/functions.php new file mode 100644 index 0000000..7e2b407 --- /dev/null +++ b/base/functions.php @@ -0,0 +1,76 @@ +. + +namespace hoplite\base; + +/*! + Iterates over an array and unsets any empty elements in the array. This + operates on the parameter itself. +*/ +function ArrayStripEmpty(Array & $array) +{ + foreach ($array as $key => $value) + if (is_array($array[$key])) + ArrayStripEmpty($array[$key]); + else if (empty($value)) + unset($array[$key]); +} + +/*! + Turns an under_scored string into a CamelCased one. If |$first_char| is + TRUE, then the first character will also be capatalized. +*/ +function UnderscoreToCamelCase($string, $first_char = TRUE) +{ + if ($first_char) + $string[0] = strtoupper($string[0]); + return preg_replace_callback('/_([a-z])/', + function($c) { return strtoupper($c[1]); }, + $string); +} + +/*! + Turns a CamelCase string to an under_scored one. +*/ +function CamelCaseToUnderscore($string) +{ + $string = preg_replace('/([A-Z]+)([A-Z][a-z])/','\1_\2',$string); + $string = preg_replace('/([a-z])([A-Z])/','\1_\2', $string); + return strtolower($string); +} + +/*! + Creates a random string of length |$length|, or a random length between 20 + and 100 if NULL. +*/ +function Random($length = NULL) +{ + if ($length === NULL) + $length = rand(20, 100); + + $string = ''; + for ($i = 0; $i < $length; $i++) { + $type = rand(0, 300); + if ($type < 100) + $string .= rand(0, 9); + else if ($type < 200) + $string .= chr(rand(65, 90)); + else + $string .= chr(rand(97, 122)); + } + + return $string; +}