X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=blobdiff_plain;f=misc.php;h=de42d621528f38e5f7ead35e6203b0047df41d1c;hp=b18abd43b9f62aeeebf3cac3a7408705aa3af1c4;hb=062d46e16429f2e55573567518cb01c83b319ac4;hpb=ba50d9a564ca3b8637212c634b5a61a38e6feb9f diff --git a/misc.php b/misc.php index b18abd4..de42d62 100644 --- a/misc.php +++ b/misc.php @@ -15,6 +15,45 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# pass an integer, returns the suffix +function ordinal_suffix($i) { + # teens are all __th + if(strlen($i) > 1 && substr($i, -2, 1) === '1') { + return 'th'; + } + switch(substr($i, -1)) { + case '': + return ''; + case '1': + return 'st'; + case '2': + return 'nd'; + case '3': + return 'rd'; + default; + return 'th'; + } +} + +# ordinalize(1) => "1st" +# ordinalize(2) => "2nd" +# ordinalize(3) => "3rd" +# ordinalize(111) => "111th" +# ordinalize("62") => "62nd" +function ordinalize($i) { + return $i . ordinal_suffix($i); +} + +# remove the $key from $_REQUEST and return it's value (or null if it's not there) +function _REQUEST_cut($key) { + if(!isset($_REQUEST[$key])) { + return null; + } + $ret = $_REQUEST[$key]; + unset($_REQUEST[$key]); + return $ret; +} + # returns an array containing just the elements of $pipes that are readable (without blocking) # timeout 0 means don't wait, timeout NULL means wait indefinitely function readable_sockets($pipes, $timeout = 0){ @@ -80,7 +119,7 @@ function this_year() { # return the number of the current month (1..12) function this_month() { - return ereg_replace('^0', '', strftime('%m')); + return preg_replace('|^0|', '', strftime('%m')); } # return today's date in yyyy-mm-dd format @@ -88,6 +127,14 @@ function today_ymd() { return strftime('%Y-%m-%d'); } +function now_yyyymmdd() { + return strftime('%Y-%m-%d'); +} + +function now_yyyymmddhhmmss() { + return strftime('%Y-%m-%d %H:%M:%S'); +} + function get_text_between($text, $start_text, $end_text) { $start = strpos($text, $start_text); @@ -102,6 +149,26 @@ function get_text_between($text, $start_text, $end_text) { return substr($text, 0, $end); } +# Make it easy to insert an array into the template data structure so that each +# element of the array gets its own row. +# +# passed this: columnize(array('a', 'b', 'c'), 'k'); +# it returns: array(array('k' => 'a'), +# array('k' => 'b'), +# array('k' => 'c')); +# passed this: columnate(array(), 'k'); +# it returns: false +function columnize($arr, $key = 'data') { + if(!$arr) { + return false; + } + $ret = array(); + foreach($arr as $val) { + $ret[] = array($key => $val); + } + return $ret; +} + # php4 is broken, in that you cannot set a default value for a parameter that # is passed by reference. So, this is set up to use the following screwy # syntax: