/*
mklib.php ver 0.4.3
"putting the fun back in function"
blazonry.com
Created On: ??
-----------------------------------------------------------------------
** CHANGES
-----------------------------------------------------------------------
ver 0.4.3 2001-08-22
* added convert_array_to_options()
ver 0.4.2 2001-02-07
* moved date/time functions to mk_datetime.php
ver 0.4.1 2001-01-19
* added underscore to valid URL character in procDisplayText
ver 0.4.0 2000-12-12
* changed mk(.*) to mk_(.*)
* added mk_ fn's for above backwards compatibility
* added ellipses to mk_substr()
* added back format_bytes
ver 0.3.9 2000-12-08
* added mk_getVersion()
* changed mksplit to use explode (deprecated)
* changed procDate y2k tweak to 70
ver 0.3.8 2000-12-03
* added mkerror()
ver 0.3.7 2000-11-04
* formatted library consistently
* started to add javadoc type documentation for each function
*/
/* ===================================================================
* MK Simplified License:
*
* By using my software you agree to the following
* two terms:
* 1. You won't take credit for my work
* 2. You won't profit from my work
*
* ====================================================================
*/
function mk_getVersion()
{
return "mklib.php ver 0.4.3";
}
//---------------------------------------------------------------------
// ** File FUNCTIONS
// --------------------------------------------------------------------
/**
* Parses a full filename with or without the path and returns the
* file extension, determined by everything after the last period.
*
* @param full filename with or without path
* @return extenstion
*/
function getFileExtension($str)
{
$i = strrpos($str,".");
if (!$i) return "";
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
//----------------------------------------------------------------------------
function getFilenameSansExt($str)
{
$i = strrpos($str,".");
if (!$i) return "";
return substr($str,0,$i);
}
//----------------------------------------------------------------------------
/**
* Converts a string to a UNIX compatible filename.
* Useful for converting an uploaded file's name from an unknown
* system to a UNIX compatible
*
* @param String to be converted
* @return Converted string
*/
function mk_convertFilename($str)
{
/*== remove apostrophes ==*/
$str = str_replace("'","",$str);
/*== remove parentheses ==*/
$str = str_replace("(","",$str);
$str = str_replace(")","",$str);
/*== remove comma ==*/
$str = str_replace(",","",$str);
/*== remove all spaces ==*/
$str = str_replace(" ","",$str);
return $str;
}
//----------------------------------------------------------------------------
/**
* displays a formatted error message
*
* @param errmsg to be displayed
* @return Formatted error message
*/
function mk_error($errmsg)
{
/*== fix for Netscape table display ==*/
print "";
print "
$errmsg"; exit(); } function mkerror($errmsg) { return mk_error($errmsg); } //---------------------------------------------------------------------------- //-- HTML/FORM FUNCTIONS //---------------------------------------------------------------------------- function convert_array_to_options($a) { $retval = ""; while ($item = each($a)) { $retval .= "\n"; } return $retval; } //---------------------------------------------------------------------------- //-- TEXT FUNCTIONS //---------------------------------------------------------------------------- /** * displays passed bytes in a more human * readable format, kinda like df's -h * * @param byte string to be formated * @return formatted string */ function format_bytes($bytes) { if ($bytes > 1024) { $bytes = $bytes / 1024; $q = "kb"; } if ($bytes > 1024) { $bytes = $bytes / 1024; $q = "mb"; } if (strpos($bytes,".")) { $bytes = substr($bytes,0,strpos($bytes,".")+2); } return $bytes . $q; } /** * Splits a string using the given delimiter into an array. * * @param String to be split * @param delimiter * @return array of strings */ function mksplit($str, $delim) { return explode($delim, $str); } /** * Chops a string to the desired length chopping at a space. * errors on the side of shorter length, kinda like word wrap * but it cuts. This is useful for preview display purposes * used frequently when linking to the full description. * * @param String to be shortened * @param desired maximum length * @return shortened string */ function mk_substr($str, $len) { if (strlen($str) < $len) return $str; $str = substr($str,0,$len); if ($spc_pos = strrpos($str," ")) $str = substr($str,0,$spc_pos); return $str . "..."; } function mksubstr($str, $len) { return mk_substr($str,$len); } /** * Process text to be inserted into a database. * useful when you want to allow different levels * of html in the text * * @param text to be processed * @param flag to determine processing * flag = 0 ==> strip all tags * flag = 1 ==> allow P,B,I tags - remove php * flag = 2 ==> convert all HTML characters (as is) * @return proccessed text */ function procDBText($str, $flag) { if ($flag == 0) { $str = strip_tags($str); } else if ($flag == 1) { $str = eregi_replace("<([pbi])>","%%MK\\1MK%%",$str); $str = eregi_replace("([pbi])>","%%MK/\\1MK%%",$str); $str = strip_tags($str); $str = eregi_replace("%%MK([pbi])MK%%","<\\1>",$str); $str = eregi_replace("%%MK/([pbi])MK%%","\\1>",$str); } else if ($flag == 2) { $str = htmlspecialchars($str); } $str = str_replace("'","\'",$str); return $str; } /** * Process text to be displayed in a browser (HTML) * converts carriage returns to