$maxwidth) || ($maxheight && $height > $maxheight))
{
if($maxwidth && $width > $maxwidth)
{
$widthratio = $maxwidth/$width;
$resizewidth=true;
}
else $resizewidth=false;
if($maxheight && $height > $maxheight)
{
$heightratio = $maxheight/$height;
$resizeheight=true;
}
else $resizeheight=false;
if($resizewidth && $resizeheight)
{
if($widthratio < $heightratio) $ratio = $widthratio;
else $ratio = $heightratio;
}
elseif($resizewidth)
{
$ratio = $widthratio;
}
elseif($resizeheight)
{
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists('imagecopyresampled') && $imagetype !='image/gif')
{
$newim = imagecreatetruecolor($newwidth, $newheight);
}
else
{
$newim = imagecreate($newwidth, $newheight);
}
// additional processing for png / gif transparencies (credit to Dirk Bohl)
if($imagetype == 'image/x-png' || $imagetype == 'image/png')
{
imagealphablending($newim, false);
imagesavealpha($newim, true);
}
elseif($imagetype == 'image/gif')
{
$originaltransparentcolor = imagecolortransparent( $im );
if($originaltransparentcolor >= 0 && $originaltransparentcolor < imagecolorstotal( $im ))
{
$transparentcolor = imagecolorsforindex( $im, $originaltransparentcolor );
$newtransparentcolor = imagecolorallocate($newim,$transparentcolor['red'],$transparentcolor['green'],$transparentcolor['blue']);
imagefill( $newim, 0, 0, $newtransparentcolor );
imagecolortransparent( $newim, $newtransparentcolor );
}
}
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
if($imagetype == 'image/pjpeg' || $imagetype == 'image/jpeg')
{
imagejpeg ($newim,$urlandname,$comp);
}
elseif($imagetype == 'image/x-png' || $imagetype == 'image/png')
{
imagepng ($newim,$urlandname,substr($comp,0,1));
}
elseif($imagetype == 'image/gif')
{
imagegif ($newim,$urlandname);
}
imagedestroy ($newim);
}
else
{
if($imagetype == 'image/pjpeg' || $imagetype == 'image/jpeg')
{
imagejpeg ($im,$urlandname,$comp);
}
elseif($imagetype == 'image/x-png' || $imagetype == 'image/png')
{
imagepng ($im,$urlandname,substr($comp,0,1));
}
elseif($imagetype == 'image/gif')
{
imagegif ($im,$urlandname);
}
}
}
// **************************CHECK IMAGE TYPE AND CONVERT TO TEMP TYPE*****************************
function convert_image($imagetemp,$imagetype){
if($imagetype == 'image/pjpeg' || $imagetype == 'image/jpeg')
{
$cim1 = imagecreatefromjpeg($imagetemp);
}
elseif($imagetype == 'image/x-png' || $imagetype == 'image/png')
{
$cim1 = imagecreatefrompng($imagetemp);
imagealphablending($cim1, false);
imagesavealpha($cim1, true);
}
elseif($imagetype == 'image/gif')
{
$cim1 = imagecreatefromgif($imagetemp);
}
return $cim1;
}
// **************************GENERATE FORM OPEN*****************************
function form_open($name,$class,$url,$parameters){
?>
$length)
{
$textstring = substr($textstring,0,$length).'...';
}
return $textstring;
}
/**
* Present a size (in bytes) as a human-readable value
*
* @param int $size size (in bytes)
* @param int $precision number of digits after the decimal point
* @return string
*/
function bytestostring($size, $precision = 0) {
$sizes = array('YB', 'ZB', 'EB', 'PB', 'TB', 'GB', 'MB', 'KB', 'B');
$total = count($sizes);
while($total-- && $size > 1024) $size /= 1024;
return round($size, $precision).' '.$sizes[$total];
}
//function to clean a filename string so it is a valid filename
function clean_filename($filename){
$filename = preg_replace('/^\W+|\W+$/', '', $filename); // remove all non-alphanumeric chars at begin & end of string
$filename = preg_replace('/\s+/', '_', $filename); // compress internal whitespace and replace with _
return strtolower(preg_replace('/\W-/', '', $filename)); // remove all non-alphanumeric chars except _ and -
}
//********************************Return File MIME Type***************************
function returnMIMEType($filename)
{
preg_match("|\.([a-z0-9]{2,4})$|i", $filename, $fileSuffix);
switch(strtolower($fileSuffix[1]))
{
case 'js' :
return 'application/x-javascript';
case 'json' :
return 'application/json';
case 'jpg' :
case 'jpeg' :
case 'jpe' :
return 'image/jpg';
case 'png' :
case 'gif' :
case 'bmp' :
case 'tiff' :
return 'image/'.strtolower($fileSuffix[1]);
case 'css' :
return 'text/css';
case 'xml' :
return 'application/xml';
case 'doc' :
case 'docx' :
return 'application/msword';
case 'xls' :
case 'xlt' :
case 'xlm' :
case 'xld' :
case 'xla' :
case 'xlc' :
case 'xlw' :
case 'xll' :
return 'application/vnd.ms-excel';
case 'ppt' :
case 'pps' :
return 'application/vnd.ms-powerpoint';
case 'rtf' :
return 'application/rtf';
case 'pdf' :
return 'application/pdf';
case 'html' :
case 'htm' :
case 'php' :
return 'text/html';
case 'txt' :
return 'text/plain';
case 'mpeg' :
case 'mpg' :
case 'mpe' :
return 'video/mpeg';
case 'mp3' :
return 'audio/mpeg3';
case 'wav' :
return 'audio/wav';
case 'aiff' :
case 'aif' :
return 'audio/aiff';
case 'avi' :
return 'video/msvideo';
case 'wmv' :
return 'video/x-ms-wmv';
case 'mov' :
return 'video/quicktime';
case 'zip' :
return 'application/zip';
case 'tar' :
return 'application/x-tar';
case 'swf' :
return 'application/x-shockwave-flash';
default :
if(function_exists('mime_content_type'))
{
$fileSuffix = mime_content_type($filename);
}
return 'unknown/' . trim($fileSuffix[0], '.');
}
}
//************************Return Array of Directory Structure***************************
function dirtree(&$alldirs,$types='*.*',$root='',$tree='',$branch='',$level=0) {
// filter file types according to type
$filetypes = explode(',',preg_replace('{[ \t]+}', '',$types));
if($level==0 && is_dir($root.$tree.$branch))
{
$filenum=0;
foreach($filetypes as $filetype)
{
$filenum = $filenum + count(glob($root.$tree.$branch.sql_regcase($filetype),GLOB_NOSORT));
}
$treeparts = explode('/',rtrim($tree,'/'));
$topname = end($treeparts);
$alldirs[] = array($branch,rtrim($topname,'/').' ('.$filenum.')',rtrim($topname,'/'),rtrim($topname,'/'),$filenum,filemtime($root.$tree.$branch));
}
$level++;
$dh = opendir($root.$tree.$branch);
while (($dirname = readdir($dh)) !== false)
{
if($dirname != '.' && $dirname != '..' && is_dir($root.$tree.$branch.$dirname) && $dirname != '_thumbs')
{
$filenum=0;
foreach($filetypes as $filetype)
{
$filenum = $filenum + count(glob($root.$tree.$branch.$dirname.'/'.sql_regcase($filetype),GLOB_NOSORT));
}
$indent = '';
for($i=0;$i<$level;$i++) { $indent .= ' '; }
if(strlen($indent)>0) $indent .= '→ ';
$alldirs[] = array(urlencode($branch.$dirname.'/'),$indent.$dirname.' ('.$filenum.')',$indent.$dirname,$dirname,$filenum,filemtime($root.$tree.$branch.$dirname));
dirtree($alldirs,$types,$root,$tree,$branch.$dirname.'/',$level);
}
}
closedir($dh);
$level--;
}
/* user defined error handling function. */
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
// timestamp for the error entry.
$dt = date('Y-m-d H:i:s (T)');
// define an assoc array of error string
// in reality the only entries we should
// consider are E_WARNING, E_NOTICE, E_USER_ERROR,
// E_USER_WARNING and E_USER_NOTICE.
$errortype = array (
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parsing Error',
E_NOTICE => 'Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice',
E_STRICT => 'Runtime Notice'
);
// set of errors for which a var trace will be saved.
$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
if($errno != E_STRICT) // exclude Runtime Notices
{
$err = $dt. "\t";
$err .= $errno.' '.$errortype[$errno]. "\t";
$err .= $errmsg. "\t";
$err .= 'File: '.basename($filename). "\t";
$err .= 'Line: '.$linenum. "\t";
if (in_array($errno, $user_errors))
{
$err .= 'Trace: '.wddx_serialize_value($vars, 'Variables'). "\t";
}
$err .= "\n";
// save to the error log file, and e-mail me if there is a critical user error.
error_log($err, 3, 'error.log');
}
}
$old_error_handler = set_error_handler('userErrorHandler');
?>