📄 functions.inc.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 + -