⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.inc.php

📁 一款文件上传程序
💻 PHP
字号:
<?php
define ( 'SUPPORTED_IMAGE_TYPES', function_exists ( 'imagetypes' ) ? imagetypes ( ) : 0 );

function gpc($n,$w='GPC',$d=''){for($i=0;isset($w[$i]);$i++){if($w[$i]=='G'&&isset($_GET[$n]))return$_GET[$n];if($w[$i]=='P'&&isset($_POST[$n]))return$_POST[$n];if($w[$i]=='C'&&isset($_COOKIE[$n]))return$_COOKIE[$n];}return$d;}
function is_zip($f){$fp=@fopen($f,'rb');if(!$fp)return false;$hd=fread($fp,4);fclose($fp);return$hd=="\x50\x4B\x03\x04";}
function is_jpeg($f){$fp=@fopen($f,'rb');if(!$fp)return false;$hd=fread($fp,2);fclose($fp);return$hd=="\xFF\xD8";}
function is_gif($f){$fp=@fopen($f,'rb');if(!$fp)return false;$hd=fread($fp,3);fclose($fp);return$hd=="GIF";}
function is_png($f){$fp=@fopen($f,'rb');if(!$fp)return false;$hd=fread($fp,8);fclose($fp);return$hd=="\x89\x50\x4E\x47\x0D\x0A\x1A\x0A";}
function is_image($f){$fp=@fopen($f,'rb');if(!$fp)return false;$hd=fread($fp,8);fclose($fp);return$hd=="\x89\x50\x4E\x47\x0D\x0A\x1A\x0A"||substr($hd,0,2)=="\xFF\xD8"||substr($hd,0,3)=="GIF";}
function strip_gpc($v){if(is_array($v)){while(list($k,$x)=each($v))$v[$k]=strip_gpc($x);return$v;}return stripslashes($v);}
function str_slice($s,$l){return strlen($s)>$l?substr($s,0,$l/2-1).'...'.substr($s,-($l/2-2)):$s;}
function path_encode($p){return rawurlencode(trim(str_replace('//','/',$p),' /.'));}
function path_decode($p){return str_replace('../','',trim(rawurldecode($p),' /.'));}
function clean_url($u){return trim(str_replace('//','/',$u),'./ ');}
function rtrim2($s,$c=' /\"'){for($i=strlen($s)-1;$i>=0&&strstr($c,$s[$i]);$i--){if(strstr($c,$s[$i])){$s=substr($s,0,$i);}}return $s;}
function go_to($url=''){exit(header('Location: '.($url===''?(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'index.php'):$url)));}
function get_size($s,$u='B',$p=1){$us=array('B'=>'KB','KB'=>'MB','MB'=>'GB','GB'=>'TB');return (($u!=='B')&&(!isset($us[$u]))||($s<1000))?(number_format($s,$p).$u):(get_size($s/1024,$us[$u],$p));}
function make_file($f){if(!touch($f))exit('Unable to create '.$f);return change_mode($f);}
function change_mode($f,$m=0777){$o=umask(0);$r=chmod($f,$m);umask($o);return$r;}
function make_dir($p,$m=0777){$o=umask(0);$r=mkdir($p,$m);umask($o);return$r;}
function get_rand($len=8,$p=''){$c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';$x=strlen($c)-1;for($i=0;$i<$len;$i++)$p.=$c[mt_rand(0,$x)];return$p;}
function get_filename($f){if(false!==($pos=strrpos($f,'.')))return substr($f,0,$pos);return$f;}
function get_extension($n){return strtolower(trim(strrchr($n,'.'),'.'));}
function multi_sort($arr,$c,$o=SORT_ASC,$t=SORT_STRING,$case=false){reset($arr);$tmp=array();while(list($k,$v)=each($arr)){if(!isset($v[$c]))break;$tmp[$k]=(!$case&&$t==SORT_STRING)?strtolower($v[$c]):$v[$c];}if(count($tmp))array_multisort($tmp,$o,$t,$arr);return$arr;}
function parse($str,$var,$val=''){if(is_array($var)){while(list($k,$v)=each($var))$str=str_replace( $k,$v,$str);return$str;}return str_replace($var,$val,$str);}
function ascii_str($e){$r='';for($i=0;$i<strlen($e);$i++)$r.='&#'.ord($e[$i]).';';return$r;}
function dir_name($p){return rtrim2(dirname($p),'./ ');}
function delete_dir($p){if(false!==($h=opendir($p))){while(false!==($f=readdir($h))){if($f=='.'||$f=='..') continue;if(is_dir($p.'/'.$f)){delete_dir($p.'/'.$f);}else{unlink ( $p . '/' . $f );}}closedir($h);return rmdir($p);}return false;}

function importimage ( $s, $t )
{
	if($t==1&&SUPPORTED_IMAGE_TYPES&1)return imagecreatefromgif($s);
	if($t==2&&SUPPORTED_IMAGE_TYPES&2)return imagecreatefromjpeg($s);
	if($t==3&&SUPPORTED_IMAGE_TYPES&4)return imagecreatefrompng($s);
	return false;
}

function exportimage ( &$s, $t, $d )
{
	if($t==1&&SUPPORTED_IMAGE_TYPES&1)return imagegif($s,$d);
	if($t==2&&SUPPORTED_IMAGE_TYPES&2)return imagejpeg($s,$d,85);
	if($t==3&&SUPPORTED_IMAGE_TYPES&4)return imagepng($s,$d);
	return false;
}

function img_wmark ( $src, $wm, $top = false, $left = false )
{
	global $UPL;
	$inf_src = @getimagesize ( $src );
	$inf_wm  = @getimagesize ( $wm );

	if ( is_array ( $inf_src ) && is_array ( $inf_src ) )
	{
		// Don't watermark gif
		if ( $inf_src[2] == 1 ) return true;
		// Don't watermark if image is too small
		if ( $inf_src[0] <= $UPL['CONFIGS']['WATERMARK_IGNORE_WIDTH'] ) return true;

		$im_src = importimage ( $src, $inf_src[2] );
		$im_wm  = importimage ( $wm, $inf_wm[2] );
		if ( $im_src === false || $im_wm === false ) return false;
		ImageCopy ( $im_src, $im_wm, ( $left ? 0 : $inf_src[0] - $inf_wm[0] ), ( $top ? 0 : $inf_src[1] - $inf_wm[1] ), 0, 0, $inf_wm[0], $inf_wm[1] );
		$retval = exportimage ( $im_src, $inf_src[2], $src );
		ImageDestroy ( $im_src );
		ImageDestroy ( $im_wm );
		return $retval;
	}
	return false;
}

function img_resize ( $src, $dst, $width, $height, $add_info = false )
{
	$img_inf = @getimagesize ( $src );

	if ( is_array ( $img_inf ) )
	{
		$im_src = importimage ( $src, $img_inf[2] );
		if ( $im_src === false ) return false;
		if ( $add_info )
		{
			$im_dst = ImageCreateTrueColor ( $width+2, $height+15 );
			$black = imagecolorallocate ( $im_dst, 0, 0, 0 );
			$white = imagecolorallocate ( $im_dst, 255, 255, 255 );
			imagefill ( $im_dst, 0, 0, $black );
			$str =  $img_inf[0] . 'x' . $img_inf[1] . ' - ' . get_size(filesize($src),'B',0);
			$str_width = imagefontwidth ( 2 ) * strlen ( $str );
			imagestring($im_dst,2, ($width/2)-($str_width/2), $height+1, $str, $white );
			ImageCopyResampled ( $im_dst, $im_src, 1, 1, 0, 0, $width, $height, $img_inf[0], $img_inf[1] );
		}
		else
		{
			$im_dst = ImageCreateTrueColor ( $width, $height );
			ImageCopyResampled ( $im_dst, $im_src, 0, 0, 0, 0, $width, $height, $img_inf[0], $img_inf[1] );
		}
		$retval = exportimage ( $im_dst, $img_inf[2], $dst );
		imagedestroy ( $im_src );
		imagedestroy ( $im_dst );
		return $retval;
	}
	return false;
}

function send_email ( $to, $subject, $message, $headers = '', $params = '' )
{
	if ( !@mail ( $to, $subject, $message, $headers, $params ) )
	{
		print "Unable to send email, server is probably not configured. Mail content:\n\n";
		print '<pre>' . $message . '</pre>';
	}
}

function parse_bb ( $str )
{
	$search = array
	(
		'#\[B\](.+?)\[\/B\]#mis',
		'#\[I\](.+?)\[\/I\]#mis',
		'#\[U\](.+?)\[\/U\]#mis',
		'#\[COLOR\=(.+?)\](.+?)\[\/COLOR\]#mis',
		'#\[URL\](.+?)\[\/URL\]#mis',
		'#\[URL\=(.+?)\](.+?)\[\/URL\]#mis',
		'#\[IMG\](.+?)\[\/IMG\]#mis',
	);

	$replace = array
	(
		'<strong>$1</strong>',
		'<span style="font-style:italic;">$1</span>',
		'<span style="text-decoration:underline;">$1</span>',
		'<span style="color:$1;">$2</span>',
		'<a href="$1">$1</a>',
		'<a href="$1">$2</a>',
		'<img src="$1" alt="" />',
	);

	return preg_replace ( $search, $replace, $str );
}

function clear_contents_cache($dir){return@unlink($dir.'.cache.php');}

function get_contents ( $dir, $ret = array ( ), $parent = '', $level = 0 )
{
    if(!count($ret))$ret=array('dirs'=>array(),'files'=>array(),'total_dirs'=>0,'total_files'=>0,'total_size'=>0);
	$cache_file=$dir.'/.cache.php';
	if($level==0){$DB=new DB;if($DB->open($cache_file)){return$DB->all();}}
	$fidx = $parent==''?'<MAIN_FOLDER>':$parent;

	if ( false !== ( $h = @opendir ( $dir ) ) )
	{
		$ret['files'][$fidx] = array ( );

		while ( false !== ( $f = readdir ( $h ) ) )
		{
			if($f[0]=='.')continue;

			if(is_dir($dir.'/'.$f))
			{
				$ret['total_dirs']++;
				$ret['dirs'][]=array('name'=>$f,'path'=>trim($parent.'/'.$f,'/'),'level'=>$level,'size'=>0);
				$ret=get_contents($dir.'/'.$f,$ret,trim($parent.'/'.$f,'/'),$level+1);
			}
			else
			{
				$size=filesize($dir.'/'.$f);
				$ret['total_files']++;
				$ret['total_size']+=$size;
				$ret['files'][$fidx][]=array('name'=>$f,'size'=>$size,'date'=>filemtime($dir.'/'.$f),'is_image'=>is_image($dir.'/'.$f));
			}
		}
		closedir($h);

		if($level==0)
		{
			$x=count($ret['dirs']);
			for($i=0;$i<$x;$i++)
			{
				$r1=&$ret['dirs'][$i];
				$k=$r1['path'];
				$r1['files']=count($ret['files'][$k]);
				$r1['size']=0;
				if($r1['files'])
				{
					$m=$r1['files'];
					for($j=0;$j<$m;$j++)$r1['size']+=$ret['files'][$k][$j]['size'];
				}
			}

			$DB=new DB;
			if($DB->create($cache_file))
			{
				$DB->open($cache_file);
				$DB->set($ret,1);
				$DB->save();
			}
		}
	}
	return $ret;
}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -