<?php
/**
*读文件函数
**/
function read_file($filename,$method="rb"){
if($handle=@fopen($filename,$method)){
@flock($handle,LOCK_SH);
$filedata=@fread($handle,@filesize($filename));
@fclose($handle);
}
return $filedata;
}
/**
*写文件函数
**/
function write_file($filename,$data,$method="rb+",$iflock=1){
@touch($filename);
$handle=@fopen($filename,$method);
if(!$handle&&!strstr($filename,'cache/label_cache')){
echo "此文件不可写:$filename";
}
if($iflock){
@flock($handle,LOCK_EX);
}
@fputs($handle,$data);
if($method=="rb+") @ftruncate($handle,strlen($data));
@fclose($handle);
@chmod($filename,0777);
if( is_writable($filename) ){
return 1;
}else{
return 0;
}
}
/**
*图像处理函数
**/
function gdpic($srcFile,$dstFile,$width,$height,$type=''){
require_once(ROOT_PATH."inc/waterimage.php");
if(is_array($type)){
//截取一部分,以满足匹配尺寸
cutimg($srcFile,$dstFile,$x=$type[x]?$type[x]:0,$y=$type[y]?$type[y]:0,$width,$height,$x2=$type[x2]?$type[x2]:0,$y2=$type[y2]?$type[y2]:0,$scale=$type[s]?$type[s]:100,$fix=$type[fix]?$type[fix]:'');
}elseif($type==1){
//成比例的缩放
ResizeImage($srcFile,$dstFile,$width,$height);
}else{
//与尺寸不匹配时.用色彩填充
gdfillcolor($srcFile,$dstFile,$width,$height);
}
}
/**
*删除文件,值不为空,则返回不能删除的文件名
**/
function del_file($path){
if (file_exists($path)){
if(is_file($path)){
if( !@unlink($path) ){
$show.="$path,";
}
} else{
$handle = opendir($path);
while (($file = readdir($handle))!='') {
if (($file!=".") && ($file!="..") && ($file!="")){
if (is_dir("$path/$file")){
$show.=del_file("$path/$file");
} else{
if( !@unlink("$path/$file") ){
$show.="$path/$file,";
}
}
}
}
closedir($handle);
if(!@rmdir($path)){
$show.="$path,";
}
}
}
return $show;
}
function Tblank($string,$msg="内容不能全为空格"){
$string=str_replace(" ","",$string);
$string=str_replace(" ","",$string);
$string=str_replace(" ","",$string);
$string=str_replace("\r","",$string);
$string=str_replace("\n","",$string);
$string=str_replace("\t","",$string);
if(!$string){
showerr($msg);
}
}
/**
*数据表字段信息处理函数
**/
function table_field($table,$field=''){
global $db;
$query=$db->query(" SELECT * FROM $table limit 1");
$num=mysql_num_fields($query);
for($i=0;$i<$num;$i++){
$f_db=mysql_fetch_field($query,$i);
$showdb[]=$f_db->name;
}
if($field){
if(in_array($field,$showdb) ){
return 1;
}else{
return 0;
}
}else{
return $showdb;
}
}
/**
*判断数据表是否存在
**/
function is_table($table){
global $db;
$query=$db->query("SHOW TABLE STATUS");
while( $array=$db->fetch_array($query) ){
if($table==$array[Name]){
return 1;
}
}
}
/**
*上传文件
**/
function upfile($upfile,$array){
global $db,$lfjuid,$pre,$webdb,$groupdb,$lfjdb,$timestamp;
$FY=strtolower(strrchr(basename($upfile),"."));if($FY&&$FY!='.tmp'){die("<SCRIPT>alert('上传文件有误');</SCRIPT>");}
$filename=$array[name];
$path=makepath(ROOT_PATH.$array[path]);
if($path=='false')
{
showerr("不能创建目录$array[path],上传失败",1);
}
elseif(!is_writable($path))
{
showerr("目录不可写".$path,1);
}
$size=abs($array[size]);
$filetype=strtolower(strrchr($filename,"."));
if(!$upfile)
{
showerr("文件不存在,上传失败",1);
}
elseif(!$filetype)
{
showerr("文件不存在,或文件无后缀名,上传失败",1);
}
else
{
if($filetype=='.php'||$filetype=='.asp'||$filetype=='.aspx'||$filetype=='.jsp'||$filetype=='.cgi'){
showerr("系统不允许上传可执行文件,上传失败",1);
}
if( $groupdb[upfileType] && !in_array($filetype,explode(" ",$groupdb[upfileType])) )
{
showerr("你所上传的文件格式为:$filetype,而你所在用户组仅允许上传的文件格式为:$groupdb[upfileType]",1);
}
elseif( !in_array($filetype,explode(" ",$webdb[upfileType])) )
{
showerr("你所上传的文件格式为:$filetype,而系统仅允许上传的文件格式为:$webdb[upfileType]",1);
}
if( $groupdb[upfileMaxSize] && ($groupdb[upfileMaxSize]*1024)<$size )
{
showerr("你所上传的文件大小为:".($size/1024)."K,而你所在用户组仅允许上传的文件大小为:{$groupdb[upfileMaxSize]}K",1);
}
if( !$groupdb[upfileMaxSize] && $webdb[upfileMaxSize] && ($webdb[upfileMaxSize]*1024)<$size )
{
showerr("你所上传的文件大小为:".($size/1024)."K,而系统仅允许上传的文件大小为:{$webdb[upfileMaxSize]}K",1);
}
}
//$oldname=preg_replace("/(.*)\.([^.]*)/is","\\1",$filename);
//if(eregi("(.jpg|.png|.gif)$",$filetype)){
$tempname="{$lfjuid}_".date("YmdHms_").rands(5).$filetype;
//}else{
// $tempname="{$lfjuid}_".date("YmdHms_",time()).base64_encode(urlencode($oldname)).$filetype;
// $tempname=str_replace('+','%2B',$tempname);
//}
//if(strlen($tempname)>250||strstr($tempname,'+')){
// $tempname="{$lfjuid}_".date("YmdHms_",time()).rands(5).$filetype;
//}
$newfile="$path/$tempname";
if(@move_uploaded_file($upfile,$newfile))
{
@chmod($newfile, 0777);
$ck=2;
}
if(!$ck)
{
if(@copy($upfile,$newfile))
{
@chmod($newfile, 0777);
$ck=2;
}
}
if($ck)
{
if(($array[size]+$lfjdb[usespace])>($webdb[totalSpace]*1048576+$groupdb[totalspace]*1048576+$lfjdb[totalspace])){
//有的用户组不限制空间大小,$array[updateTable]
if(!$groupdb[AllowUploadMax]){
unlink($newfile);
showerr("你的空间不足,上传失败,你可以联系管理员帮你增大空间!",1);
}
}
$db->query("UPDATE {$pre}memberdata SET usespace=usespace+'$size' WHERE uid='$lfjuid' ");
//对附件做处理,删除冗余的附件.对附件做个记录
//$url=str_replace("$webdb[updir]/","",$array[path]);
//$oldname=preg_replace("/(.*)\.([^.]*)/is","\\1",$filename);
$db->query("INSERT INTO `{$pre}upfile` ( `uid` , `posttime` , `url` , `filename` ) VALUES ('$lfjuid','$timestamp','$filename','$tempname' )");
//setcookie("IF_upfile",$timestamp);
return $tempname;
}
else
{
showerr("请检查空间问题,上传失败",1);
}
}
/**
*生成目录
**/
function makepath($path){
//这个\没考虑
$path=str_replace("\\","/",$path);
$ROOT_PATH=str_replace("\\","/",ROOT_PATH);
$detail=explode("/",$path);
foreach($detail AS $key=>$value){
if($value==''&&$key!=0){
//continue;
}
$newpath.="$value/";
if((eregi("^\/",$newpath)||eregi(":",$newpath))&&!strstr($newpath,$ROOT_PATH)){continue;}
if( !is_dir($newpath) ){
if(substr($newpath,-1)=='\\'||substr($newpath,-1)=='/')
{
$_newpath=substr($newpath,0,-1);
}
else
{
$_newpath=$newpath;
}
if(!is_dir($_newpath)&&!mkdir($_newpath)&&ereg("^\/",ROOT_PATH)){
return 'false';
}
@chmod($newpath,0777);
}
}
return $path;
}
/**
*取得真实目录
**/
function tempdir($file,$type=''){
global $webdb;
if($type=='pwbbs'){
global $db_attachname;
if(is_file(ROOT_PATH."$webdb[passport_path]/$db_attachname/thumb/$file")){
$file="$webdb[passport_url]/$db_attachname/thumb/$file";
}else{
$file="$webdb[passport_url]/$db_attachname/$file";
}
return $file;
}elseif($type=='dzbbs'){
global $_DCACHE;
$file="$webdb[passport_url]/{$_DCACHE[settings][attachurl]}/$file";
return $file;
}elseif( ereg("://",$file)||ereg("^/./",$file) ){
return $file;
}elseif($webdb[mirror]&&!file_exists(ROOT_PATH."$webdb[updir]/$file")){ //FTP镜像点
return $webdb[mirror].((eregi('\/$',$webdb[mirror])||eregi('^\/',$file))?'':'/').$file;
}else{
return $webdb[www_url].'/'.$webdb[updir].((eregi('\/$',$webdb[updir])||eregi('^\/',$file))?'':'/').$file;
}
}
/**
*截取字符
**/
function get_word($content,$length,$more=1) {
if(WEB_LANG=='utf-8'){
$content = get_utf8_word($content, $length,$more);
return $content;
}
if(WEB_LANG=='big5'){
$more=1; //不这样的话.截取字符容易使用页面乱码
}
if(!$more){
$length=$length+2;
}
if($length>10){
$length=$lengt