X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=format.php;h=f931cdd8c3fc6afebe277a129e8862795848686e;hb=608ecf965408645758cdca1e5f01ff5ac3eff166;hp=0126ada85066d7199abf4cbb30868453fc35b3b7;hpb=c84327eb5f13ebd2af0792adbdfb35cfb1a3eca5;p=wfpl.git diff --git a/format.php b/format.php index 0126ada..f931cdd 100644 --- a/format.php +++ b/format.php @@ -112,24 +112,50 @@ function format_filename($str, $allow_uppercase = false) { return ereg_replace('^[.-]', '_', $str); } +function format_path($str, $allow_uppercase = false) { + if(!$allow_uppercase) { + $str = strtolower($str); + } + $str = ereg_replace('[^a-zA-Z0-9_./-]', '_', $str); + return ereg_replace('^[.-]', '_', $str); +} + function client_path_to_filename($path) { $filename = ereg_replace(".*[:/\\]", '', $path); return format_filename($filename, true); } -function format_h_w_image($str) { +function format_image_w_h($str) { $fields = explode(' ', $str); if(count($fields) != 3) { return ''; } - list($width, $height, $filename) = $fields; + list($filename, $width, $height) = $fields; + $filename = format_path($filename); + $width = format_int_0($width); + $height = format_int_0($height); + + return "$filename $width $height"; +} + +function format_image_w_h_thumb_w_h($str) { + $fields = explode(' ', $str); + if(count($fields) != 6) { + die('count: ' . count($fields)); + return ''; + } + + list($filename, $width, $height, $thumb_filename, $thumb_width, $thumb_height) = $fields; + $filename = format_path($filename); $width = format_int_0($width); $height = format_int_0($height); - $filename = format_filename($filename); + $thumb_filename = format_path($thumb_filename); + $thumb_width = format_int_0($thumb_width); + $thumb_height = format_int_0($thumb_height); - return "$width $height $filename"; + return "$filename $width $height $thumb_filename $thumb_width $thumb_height"; } function format_varname($str) { @@ -218,6 +244,62 @@ function format_mdy_to_ymd($str) { return mdy_to_ymd(format_oneline($str)); } +# date is yyyy-mm-dd +function format_ymd($str) { + require_once('code/wfpl/time.php'); + list($year, $month, $day) = ymd_clean($str); + return sprintf('%04u-%02u-%02u', $year, $month, $day); +} + +# takes any of: HH :MM HH:MM +# returns decimal number of hours +# +# You probably want to use format_hours() instead because it handles hours with a decimal point. +function format_hours_minutes($str) { + if(strlen($str) == 0) { + return $str; + } + $pos = strpos($str, ':'); + if($pos === false) { + $hours = format_int_0($str); + $minutes = 0; + } elseif($pos == 0) { + $hours = 0; + $minutes = format_int_0($str); + } else { + $hours = format_int_0(substr($str, 0, $pos)); + $minutes = format_int_0(substr($str, $pos + 1)); + } + return $hours + ($minutes / 60.0); +} + +# takes any of: HH :MM HH:MM HH.hh(decimal hours) +# returns decimal number of hours +function format_hours($str) { + if(strlen($str) == 0) { + return $str; + } + if(strpos($str, ':') !== false) { + return format_hours_minutes($str); + } else { + return format_decimal($str); + } +} + +# takes eg 12:23am +# returns decimal number of hours since midnight +function format_12hr_to_hours($str) { + if(eregi('noon', $str)) { + return 12; + } + $hours = format_hours($str); + if($hours < 12 && eregi('p', $str)) { + $hours += 12; + } + return $hours; +} + + function format_phone($str) { $str = ereg_replace('[^0-9]', '', $str); $str = ereg_replace('^1*', '', $str);