JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Fix db_get_value after mysql->mysqli upgrade
[wfpl.git] / misc.php
index 1e9a2b7..4aaa495 100644 (file)
--- a/misc.php
+++ b/misc.php
@@ -1,19 +1,49 @@
 <?php
 
-#  Copyright (C) 2006 Jason Woofenden
-#
-#  This program is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#  
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#  
-#  You should have received a copy of the GNU General Public License
-#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# This program is in the public domain within the United States. Additionally,
+# we waive copyright and related rights in the work worldwide through the CC0
+# 1.0 Universal public domain dedication, which can be found at
+# http://creativecommons.org/publicdomain/zero/1.0/
+
+
+# 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
@@ -80,7 +110,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 +118,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);
@@ -105,11 +143,11 @@ function get_text_between($text, $start_text, $end_text) {
 # 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: columnate(array('a', 'b', 'c'), 'k');
+# 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');
+# passed this: columnize(array(), 'k');
 # it returns: false
 function columnize($arr, $key = 'data') {
        if(!$arr) {
@@ -149,5 +187,3 @@ function ref(&$foo) {
 function &last(&$array) {
        if(count($array)) return $array[count($array) - 1];
 }
-
-?>