/******************************************************************************
* Zeroboard library
*
* 最后一次修改 : 2003. 8. 7
* 这个文件内的所有函数可以随便调用.
*
* by zero (zero@nzeo.com)
*
******************************************************************************/
// W3C P3P规约设定
@header ("P3P : CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\"");
// 现在版本
$zb_version = "4.1 pl7";
/*******************************************************************************
* 错误报告设置和register_globals_on时变量再定义
******************************************************************************/
@error_reporting(E_ALL ^ E_NOTICE);
@extract($HTTP_GET_VARS);
@extract($HTTP_POST_VARS);
@extract($HTTP_SERVER_VARS);
@extract($HTTP_ENV_VARS);
/*******************************************************************************
* 基本变量初始化. (是因为php的不象错误的错误;; ぱぱ+)
******************************************************************************/
unset($member);
unset($group);
unset($setup);
/*******************************************************************************
* 检查include情况
******************************************************************************/
if(defined("_zb_lib_included")) return;
define("_zb_lib_included",true);
$_startTime=getmicrotime();
/*******************************************************************************
* 读取基本设置文件
******************************************************************************/
$_zbDefaultSetup = getDefaultSetup();
/*******************************************************************************
* 不是install页面时
******************************************************************************/
if(!eregi("install",$PHP_SELF)&&file_exists($_zb_path."config.html")) {
//SESSION处理 (SESSION在3日之内有效地设置)
if(!is_dir($_zb_path.$_zbDefaultSetup[session_path])) {
mkdir($_zb_path.$_zbDefaultSetup[session_path], 0777);
chmod($_zb_path.$_zbDefaultSetup[session_path], 0777);
}
// Data, Icon, SESSION目录无写入权限时的错误处理
if(!is_writable($_zb_path."data")) error("DATA目录无写入权限
为了使用ZERO BOARD,DATA目录必须有写入权限");
if(!is_writable($_zb_path."icon")) error("ICON目录无写入权限
为了使用ZERO BOARD,ICON目录必须有写入权限");
if(!is_writable($_zb_path.$_zbDefaultSetup[session_path])) error("SESSION目录(".$_zb_path.$_zbDefaultSetup[session_path].")无写入权限
为了使用ZERO BOARD,SESSION目录必须有写入权限");
$_sessionStart = getmicrotime();
@session_save_path($_zb_path.$_zbDefaultSetup[session_path]);
@session_cache_limiter('nocache, must_revalidate');
session_set_cookie_params(0,"/");
// SESSION变量的登陆
@session_start();
// 浏览量超过512byte,投票SESSION量超过256byte时限制使用(个人服务器时可以增加)
if(strlen($HTTP_SESSION_VARS[zb_hit])>$_zbDefaultSetup[session_view_size]) {
$zb_hit='';
session_register("zb_hit");
}
if(strlen($HTTP_SESSION_VARS[zb_vote])>$_zbDefaultSetup[session_vote_size]) {
$zb_vote='';
session_register("zb_vote");
}
// 自动登陆时核对是否正确的登陆
unset($autoLoginData);
$autoLoginData = getZBSessionID();
if($autoLoginData[no]) {
$zb_logged_no=$autoLoginData[no];
$zb_logged_ip=$REMOTE_ADDR;
$zb_logged_time=time();
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
$HTTP_SESSION_VARS["zb_logged_no"] = $zb_logged_no;
// 核对SESSION值后处理登陆
} elseif($HTTP_SESSION_VARS["zb_logged_no"]) {
// 当登陆时间超过规定的时间或登陆IP和现在使用者的IP不同时自动注销
if(time()-$HTTP_SESSION_VARS["zb_logged_time"]>$_zbDefaultSetup["login_time"]||$HTTP_SESSION_VARS["zb_logged_ip"]!=$REMOTE_ADDR) {
$zb_logged_no="";
$zb_logged_time="";
$zb_logged_ip="";
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
session_destroy();
// 有效时再设置登陆时间
} else {
// 4.0x用SESSION处理
$zb_logged_time=time();
session_register("zb_logged_time");
}
}
$_sessionEnd = getmicrotime();
// 检查在线人的数据后用文件保存(分会员和非会员保存)
$_nowConnectStart = getmicrotime();
if($_zbDefaultSetup[nowconnect_enable]=="true") {
$_zb_now_check_intervalTime = time()-$HTTP_SESSION_VARS["zb_last_connect_check"];
if(!$HTTP_SESSION_VARS["zb_last_connect_check"]||$_zb_now_check_intervalTime>$_zbDefaultSetup[nowconnect_refresh_time]) {
// 4.0xSESSION处理
$zb_last_connect_check = time();
session_register("zb_last_connect_check");
if($HTTP_SESSION_VARS["zb_logged_no"]) {
$total_member_connect = $total_connect = getNowConnector($_zb_path."data/now_member_connect.html",$HTTP_SESSION_VARS[zb_logged_no]);
$total_guest_connect = getNowConnector_num($_zb_path."data/now_connect.html", TRUE);
} else {
$total_member_connect = $total_connect = getNowConnector_num($_zb_path."data/now_member_connect.html", TRUE);
$total_guest_connect = getNowConnector($_zb_path."data/now_connect.html",$REMOTE_ADDR);
}
} else {
$total_member_connect = $total_connect = getNowConnector_num($_zb_path."data/now_member_connect.html",FALSE);
$total_guest_connect = getNowConnector_num($_zb_path."data/now_connect.html",FALSE);
}
}
}
$_nowConnectEnd = getmicrotime();
// 求config.html文件的位置;;
$temp_filename=realpath(__FILE__);
if($temp_filename) $config_dir=eregi_replace("lib.html","",$temp_filename);
else $config_dir="";
/// **和****时处理
if(eregi("msie",$HTTP_USER_AGENT)) $browser="1"; else $browser="0";
// 检查DB设置情况
if(!file_exists($config_dir."config.html")&&!eregi("install",$PHP_SELF)) {
echo"";
exit;
}
// 管理员数据表和会员管理数据表的名字先用变量定义
$member_table = "zetyx_member_table"; // 有会员数据的直接的数据表
$group_table = "zetyx_group_table"; // 论坛数据表
$admin_table="zetyx_admin_table"; // 论坛版块管理员数据表
$send_memo_table ="zetyx_send_memo";
$get_memo_table ="zetyx_get_memo";
$t_division="zetyx_division"; // Division数据表
$t_board = "zetyx_board"; // 主数据表
$t_comment ="zetyx_board_comment"; // 注释数据表
$t_category ="zetyx_board_category"; // 筛选数据表
// 求MICROTIME
function getmicrotime() {
$microtimestmp = split(" ",microtime());
return $microtimestmp[0]+$microtimestmp[1];
}
/******************************************************************************
* Division相关函数
*****************************************************************************/
// 求所有division
function total_division() {
global $connect, $t_division, $id;
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$id"));
return $temp[0];
}
// 回复帖子时增加响应division的num值
function plus_division($division) {
global $connect, $t_division, $id;
mysql_query("update $t_division"."_$id set num=num+1 where division='$division'") or error(mysql_error);
}
// 变化删除或把公告帖子改成一般帖子等division num值时,减少相应division的num值
function minus_division($division) {
global $connect, $t_division, $id;
mysql_query("update $t_division"."_$id set num=num-1 where division='$division'") or error(mysql_error);
}
// 发表新贴时增加最近division的num值
function add_division($board_name="") {
global $connect, $t_division, $id, $t_board;
if($board_name) $board_id=$board_name;
else $board_id=$id;
$temp=mysql_fetch_array(mysql_query("select num from $t_division"."_$board_id order by division desc limit 1"));
// 当现有division的num值为基准值时,进行division +1;
if($temp[0]>=5000) {
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id"));
$max_division=$temp[0]+1;
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id where num>0 and division!='$max_division'"));
if(!$temp[0]) $second_division=0; else $second_division=$temp[0];
$temp=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$board_id where (division='$max_division' or division='$second_division') and headnum<=-2000000000"));
if($temp[0]>0) {
mysql_query("update $t_board"."_$board_id set division='$max_division' where (division='$max_division' or division='$second_division') and headnum<='-2000000000'") or error(mysql_error());
mysql_query("update $t_division"."_$board_id set num=num-$temp[0] where division=$max_division-1") or error(mysql_error());
}
$num=$temp[0]+1;
mysql_query("insert into $t_division"."_$board_id (division,num) values ('$max_division','$num')");
return $max_division;
} else {
// 现在division比基准值小的时候~
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id"));
$division=$temp[0];
mysql_query("update $t_division"."_$board_id set num=num+1 where division='$division'");
return $division;
}
}
/******************************************************************************
* 检查登陆情况,若已经登陆的话保存相应会员的信息
*****************************************************************************/
function member_info() {
global $HTTP_SESSION_VARS, $member_table, $REMOTE_ADDR, $member, $connect;
if(defined("_member_info_included")&&$member[no]) return $member;
define("_member_info_included", true);
if($member[no]) return $member;
if($HTTP_SESSION_VARS["zb_logged_no"]) {
$member=mysql_fetch_array(mysql_query("select * from $member_table where no ='".$HTTP_SESSION_VARS["zb_logged_no"]."'"));
if(!$member[no]) {
unset($member);
$member[level] = 10;
}
} else $member[level] = 10;
return $member;
}
function group_info($no) {
global $group_table;
$temp=mysql_fetch_array(mysql_query("select * from $group_table where no='$no'"));
return $temp;
}
/******************************************************************************
* ZERO BOARD专用函数
*****************************************************************************/
// 接近MySQL数据库
function dbconn() {
global $connect, $config_dir, $autologin, $HTTP_COOKIE_VARS, $_dbconn_is_included;
if($_dbconn_is_included) return;
$_dbconn_is_included = true;
$f=@file($config_dir."config.html") or Error("无config.html文件.
请您先进行DB设置","install.html");
for($i=1;$i<=4;$i++) $f[$i]=trim(str_replace("\n","",$f[$i]));
if(!$connect) $connect = @mysql_connect($f[1],$f[2],$f[3]) or Error("连接DB时发生了错误");
@mysql_select_db($f[4], $connect) or Error("发生了DB Select错误","");
return $connect;
}
// 读取文章的ICON;;
function get_icon($data) {
global $dir;
// 求发贴时间
$check_time=(time()-$data[reg_date])/60/60;
// 定义前面的图标
if($data[depth]) {
if($check_time<=12) $icon="
"; // 是最新帖子时
else $icon="
"; // 是回复帖子时
} else {
if($check_time<=12) $icon="
"; // 是最新帖子时
else $icon="
"; // 不是回复帖子时
}
if($data[headnum]<=-2000000000) $icon="
"; // 是公告帖子时
else if($data[is_secret]==1) $icon="
";
return $icon;
}
// 寻找会员个人的图标的函数
// $type : 1 -> 在名字前面显示的图标
// $type : 2 -> 代替名字显示的图标
function get_private_icon($no, $type) {
if($type==1) $dir = "icon/private_icon/";
elseif($type==2) $dir = "icon/private_name/";
if(@file_exists($dir.$no.".gif")) return $dir.$no.".gif";
}
// 名字前面的头像图标
function get_face($data, $check=0) {
global $group;
// 定义名字前面的图标;;
if($group[use_icon]==0) {
if($data[ismember]) {
if($data[islevel]==2) $face_image="
";
elseif($data[islevel]==1) $face_image="
";
else {
if($group[icon]) $face_image="
";
else $face_image="
";
}
}
else $face_image="
";
}
$temp_name = get_private_icon($data[ismember], "1");
if($temp_name) $face_image="
";
if($group[use_icon]<2&&$data[ismember]) $face_image .= "";
//if($data[ismember]&&$data[parent]) $face_image="";
//elseif($data[parent]) $face_image="";
return $face_image;
}
// 检查是不是版块管理员
function check_board_master($member, $board_num) {
$temp = split(",",$member[board_name]);
for($i=0;$i\n";
if(!eregi("member_",$PHP_SELF)) $stylefile="skin/$setup[skinname]/style.css"; else $stylefile="style.css";
if($setup[use_formmail]) {
$f = fopen("script/script_zbLayer.html","r");
$zbLayerScript = fread($f, filesize("script/script_zbLayer.html"));
fclose($f);
}
// 输出HTML开始部分
if($setup[skinname]) {
?>
=$setup[title]?>
type=text/css title=style>
if($setup[bg_color]) echo " bgcolor=".$setup[bg_color]." ";
if($setup[bg_image]) echo " background=".$setup[bg_image]." ";
?>>
if($group[header_url]) { @include $group[header_url]; }
if($setup[header_url]) { @include $setup[header_url]; }
if($group[header]) echo stripslashes($group[header]);
if($setup[header]) echo stripslashes($setup[header]);
?>
height=1 style="table-layout:fixed;">
 |
} else {
?>
=$script?>
>
if($group[header_url]) { @include $group[header_url]; }
if($group[header]) echo stripslashes($group[header]);
}
}
// 输出页脚部分
function foot() {
global $width, $group, $setup, $_startTime , $_queryTime , $_foot_executived, $_skinTime, $_sessionStart, $_sessionEnd, $_nowConnectStart, $_nowConnectEnd, $_dbTime, $_listCheckTime, $_zbResizeCheck;
if($_foot_executived) return;
$_foot_executived = true;
$maker_file=@file("skin/$setup[skinname]/maker.txt");
if($maker_file[0]) $maker="/ skin by $maker_file[0]";
else $maker = "";
if($setup[skinname]) {
?>
if($_zbResizeCheck) {
?>
}
if($setup[footer]) echo stripslashes($setup[footer]);
if($group[footer]) echo stripslashes($group[footer]);
if($setup[footer_url]) { @include $setup[footer_url]; }
if($group[footer_url]) { @include $group[footer_url]; }
?>
} else {
if($group[footer]) echo stripslashes($group[footer]);
if($group[footer_url]) { @include $group[footer_url]; }
?>
}
$_phpExcutedTime = (getmicrotime()-$_startTime)-($_sessionEnd-$_sessionStart)-($_nowConnectEnd-$_nowConnectStart)-$_dbTime-$_skinTime;
// 输出执行时间
echo "\n\n\n";
}
// 输出zbLayer
function check_zbLayer($data) {
global $zbLayer, $setup, $member, $is_admin, $id, $_zbCheckNum;
if($setup[use_formmail]) {
if(!$_zbCheckNum) $_zbCheckNum=0;
$data[name]=stripslashes($data[name]);
$data[name]=urlencode($data[name]);
//$data[name]=str_replace("\"","",$data[name]);
//$data[name]=str_replace("'","\'",$data[name]);
//$data[name]=str_replace(" ","",$data[name]);
if($data[homepage]){
$data[homepage]=str_replace("http://","",stripslashes($data[homepage]));
//$data[homepage]=str_replace("\"","",$data[homepage]);
//$data[homepage]=str_replace("'","",$data[homepage]);
//$data[homepage]=str_replace(" ","",$data[homepage]);
$data[homepage]=urlencode($data[homepage]);
$data[homepage]="http://".$data[homepage];
}
$data[email]=base64_encode($data[email]);
$_zbCheckNum++;
$_zbCount=1;
if(($member[is_admin]==1||$member[is_admin]==2)&&$data[ismember]) {
$traceID = $data[ismember];
$traceType="t";
$isAdmin=1;
} elseif(($member[is_admin]==1||$member[is_admin]==2)&&!$data[ismember]) {
$traceID = $data[name];
$traceType="tn";
$isAdmin=1;
}
if($member[no]) $isMember = 1;
if($data[ismember]<1) $data[ismember]="";
$zbLayer = $zbLayer."\nprint_ZBlayer('zbLayer$_zbCheckNum', '$data[homepage]', '$data[email]', '$data[ismember]', '$id', '$data[name]', '$traceID', '$traceType', '$isAdmin', '$isMember');";
}
return $_zbCount;
}
// 输出错误信息
function error($message, $url="") {
global $setup, $connect, $dir, $config_dir;
$dir="skin/".$setup[skinname];
if($url=="window.close") {
$message=str_replace("
","\\n",$message);
$message=str_replace("\"","\\\"",$message);
?>
} else {
head();
if($setup[skinname]) {
include "skin/$setup[skinname]/error.html";
} else {
include $config_dir."error.html";
}
foot();
}
if($connect) @mysql_close($connect);
exit;
}
// 读取版块设置
function get_table_attrib($id) {
global $connect, $admin_table;
$data=mysql_fetch_array(mysql_query("select * from $admin_table where name='$id'",$connect));
if($data[table_width]<=100) $data[table_width]=$data[table_width]."%";
// 原来是显示IP的功能,后来为了避免DB变更,修改成图片库使用权限
if(!$data[use_showip]) $data[use_showip] = 1;
$data[grant_imagebox] = $data[use_showip];
return $data;
}
// 检查版块的生成情况
function istable($str, $dbname='') {
global $config_dir;
if(!$dbname) {
$f=@file($config_dir."config.html") or Error("无config.html文件.
请先进行DB设置.","install.html");
for($i=1;$i<=4;$i++) $f[$i]=str_replace("\n","",$f[$i]);
$dbname=$f[4];
}
$result = mysql_list_tables($dbname) or error(mysql_error(),"");
$i=0;
while ($i < mysql_num_rows($result)) {
if($str==mysql_tablename ($result, $i)) return 1;
$i++;
}
return 0;
}
// 比较现在IP和已给的IP表单,检查是不是原来的会员
function check_blockip() {
global $setup;
$avoid_ip=explode(",",$setup[avoid_ip]);
$count = count($avoid_ip);
for($i=0;$i<$count;$i++) {
if(!isblank($avoid_ip[$i])&&eregi($avoid_ip[$i],$REMOTE_ADDR)) Error("已被禁用的IP地址");
}
}
// 核对在线人数
function getNowConnector($filename,$div) {
global $_zbDefaultSetup;
$_str = trim(zReadFile($filename));
$num = 0;
if($_str) {
$_str = str_replace("/*","",$_str);
$_str = str_replace("*/?>","",$_str);
$_connector = explode(":",$_str);
$_sizeConnector = count($_connector);
$_nowtime = date("YmdHi");
unset($_realNowConnector);
if($_sizeConnector) {
for($i=0;$i<$_sizeConnector;$i++) {
$_time = substr($_connector[$i],0,12);
$_div = substr($_connector[$i],12);
if($_time+$_zbDefaultSetup[nowconnect_time]>=$_nowtime&&$_div!=$div) {
$_realNowConnector.=$_time.$_div.":";
$num++;
}
}
}
}
$_realNowConnector.=$_nowtime.$div;
//check_fileislocked($filename);
zWriteFile($filename, "/*".$_realNowConnector."*/?>");
return $num;
}
// 求在线人数
function getNowConnector_num($filename, $FLAG=FALSE) {
global $_zbDefaultSetup;
$_str = trim(zReadFile($filename));
$num = 0;
if($_str) {
$_str = str_replace("/*","",$_str);
$_str = str_replace("*/?>","",$_str);
$_connector = explode(":",$_str);
$_sizeConnector = count($_connector);
$_nowtime = date("YmdHi");
unset($_realNowConnector);
if($_sizeConnector) {
for($i=0;$i<$_sizeConnector;$i++) {
$_time = substr($_connector[$i],0,12);
$_div = substr($_connector[$i],12);
if($_time+$_zbDefaultSetup[nowconnect_time]>=$_nowtime) {
$_realNowConnector.=$_time.$_div.":";
$num++;
}
}
}
}
if($FLAG) {
//check_fileislocked($filename);
zWriteFile($filename, "/*".$_realNowConnector."*/?>");
}
return $num;
}
// 判断有没有ZEROBOARD自动登陆SESSION
function getZBSessionID() {
global $HTTP_COOKIE_VARS, $_zb_path, $_zbDefaultSetup;
$zbSessionID = $HTTP_COOKIE_VARS[ZBSESSIONID];
if(!$zbSessionID) return "";
$str = zReadFile($_zb_path.$_zbDefaultSetup[session_path]."/zbSessionID_".$zbSessionID.".html");
if(!$str) {
@setcookie("ZBSESSIONID", "", time()+60*60*24*365, "/");
return "";
}
$str = explode("\n",$str);
$data[no] = trim($str[1]);
$data[time] = trim($str[2]);
$newZBSessionID = md5($data[no]."-^A-".$data[time]);
if($newZBSessionID != $zbSessionID) {
@setcookie("ZBSESSIONID", "", time()+60*60*24*365, "/");
return "";
}
if(!$_zb_path) {
z_unlink($_zb_path.$_zbDefaultSetup[session_path]."/zbSessionID_".$zbSessionID.".html");
makeZBSessionID($data[no]);
}
return $data;
}
// 制作ZEROBOARD自动登陆SESSION的函数
function makeZBSessionID($no) {
global $HTTP_COOKIE_VARS, $_zb_path, $_zbDefaultSetup;
$zbSessionID = md5($no."-^A-".time());
$newStr = "/*\n$no\n".time()."\n*/?>";
zWriteFile($_zb_path.$_zbDefaultSetup[session_path]."/zbSessionID_".$zbSessionID.".html", $newStr);
@setcookie("ZBSESSIONID", $zbSessionID, time()+60*60*24*365, "/");
}
// 消除ZEROBOARD自动登陆SESSION的函数
function destroyZBSessionID($no) {
global $HTTP_COOKIE_VARS, $_zb_path, $_zbDefaultSetup;
$zbSessionID = $HTTP_COOKIE_VARS[ZBSESSIONID];
z_unlink($_zb_path.$_zbDefaultSetup[session_path]."/zbSessionID_".$zbSessionID.".html");
@setcookie("ZBSESSIONID", "", time()+60*60*24*365, "/");
}
// 读取ZEROBOARD基本设置文件的函数
function getDefaultSetup() {
global $_zb_path;
$data = zReadFile($_zb_path."setup.html");
$data = str_replace("/*","",$data);
$data = str_replace("*/?>","",$data);
$data = explode("\n",$data);
$_c = count($data);
unset($defaultSetup);
for($i=0;$i<$_c;$i++) {
if(!ereg(";",$data[$i])&&strlen(trim($data[$i]))) {
$tmpStr = explode("=",$data[$i]);
$name = trim($tmpStr[0]);
$value = trim($tmpStr[1]);
$defaultSetup[$name]=$value;
}
}
if(!$defaultSetup[url]) $defaultSetup[url] = $HTTP_HOST;
if(!$defaultSetup[sitename]) $defaultSetup[sitename] = $HTTP_HOST;
if(!$defaultSetup[session_path]) $defaultSetup[session_path] = "data/__zbSessionTMP";
if(!$defaultSetup[session_view_size]) $defaultSetup[session_view_size] = 512;
if(!$defaultSetup[session_vote_size]) $defaultSetup[session_vote_size] = 256;
if(!$defaultSetup[login_time]) $defaultSetup[login_time] = 60*30;
if(!$defaultSetup[nowconnect_enable]) $defaultSetup[nowconnect_enable] = "true";
if(!$defaultSetup[nowconnect_refresh_time]) $defaultSetup[nowconnect_refresh_time] = 60*3;
if(!$defaultSetup[nowconnect_time]) $defaultSetup[nowconnect_tim] = 60*5;
if(!$defaultSetup[enable_hangul_id]) $defaultSetup[enable_hangul_id] = "false";
if(!$defaultSetup[check_email]) $defaultSetup[check_email] = "true";
if(!$defaultSetup[memo_limit_time]) $defaultSetup[memo_limit_time] = 7;
$defaultSetup[memo_limit_time] = 60 * 60 * 24 * $defaultSetup[memo_limit_time];
return $defaultSetup;
}
/******************************************************************************
* 一般函数
*****************************************************************************/
// 空文字时返回1
function isblank($str) {
$temp=str_replace("{","",$str);
$temp=str_replace("\n","",$temp);
$temp=strip_tags($temp);
$temp=str_replace(" ","",$temp);
$temp=str_replace(" ","",$temp);
if(eregi("[^[:space:]]",$temp)) return 0;
return 1;
}
// 数值时返回1
function isnum($str) {
if(eregi("[^0-9]",$str)) return 0;
return 1;
}
// 数值,英文时返回1
function isalNum($str) {
if(eregi("[^0-9a-zA-Z\_]",$str)) return 0;
return 1;
}
// 删除HTML标记的函数
function del_html( $str ) {
$str = str_replace( ">", ">",$str );
$str = str_replace( "<", "<",$str );
return $str;
}
// 检查身份证号码
function check_jumin($jumin) {
$weight = '234567892345'; // 指定位数weight
$len = strlen($jumin);
$sum = 0;
if ($len <> 13) return false;
for ($i = 0; $i < 12; $i++) {
$sum = $sum + (substr($jumin,$i,1)*substr($weight,$i,1));
}
$rst = $sum%11;
$result = 11 - $rst;
if ($result == 10) $result = 0;
else if ($result == 11) $result = 1;
$ju13 = substr($jumin,12,1);
if ($result <> $ju13) return false;
return true;
}
// 检查E-mail地址
function ismail( $str ) {
if( eregi("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", $str) ) return $str;
else return '';
}
// 搜索E-mail的MX,检查是不是实际存在的电子邮件
function mail_mx_check($email) {
if(!ismail($email)) return false;
list($user, $host) = explode("@", $email);
if (checkdnsrr($host, "MX") or checkdnsrr($host, "A")) return true;
else return false;
}
// 检查主页地址
function isHomepage( $str ) {
if(eregi("^http://([a-z0-9\_\-\./~@?=&-\#{5,}]+)", $str)) return $str;
else return '';
}
// 自动分辨URL, Mail做超级连接
function autolink($str) {
// URL连接
$homepage_pattern = "/([^\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\']+)/";
$str = preg_replace($homepage_pattern,"\\1\\2://\\3", " ".$str);
// 邮件连接
$email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/";
$str = preg_replace($email_pattern,"\\1\\2@\\3", " ".$str);
return $str;
}
// 把文件大小按kb, mb变换后返回
function getfilesize($size) {
if(!$size) return "0 Byte";
if($size<1024) {
return ($size." Byte");
} elseif($size >1024 && $size< 1024 *1024) {
return sprintf("%0.1f KB",$size / 1024);
}
else return sprintf("%0.2f MB",$size / (1024*1024));
}
// 切断文字列(以上长度时用...表示)
function cut_str($msg,$cut_size) {
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$point=1;
for ($i=0;$i$cut_size) return $pointtmp."";
if (ord($msg[$i])<=127) {
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) return $pointtmp."";
} else {
if ($point%$cut_size==0) return $pointtmp."";
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
// 移动页面的SCRIPT
function movepage($url) {
global $connect;
echo"";
if($connect) @mysql_close($connect);
exit;
}
// 把input或textarea的大小分齿静和劳胶返回
function size($size) {
global $browser;
if(!$browser) return " size=".($size*0.6)." ";
else return " size=$size ";
}
function size2($size) {
global $browser;
if(!$browser) return " cols=".($size*0.6)." ";
else return " cols=$size ";
}
// 发送邮件的函数
function zb_sendmail($type, $to, $to_name, $from, $from_name, $subject, $comment, $cc="", $bcc="") {
$recipient = "$to_name <$to>";
if($type==1) $comment = nl2br($comment);
$headers = "From: $from_name <$from>\n";
$headers .= "X-Sender: <$from>\n";
$headers .= "X-Mailer: PHP ".htmlversion()."\n";
$headers .= "X-Priority: 1\n";
$headers .= "Return-Path: <$from>\n";
if(!$type) $headers .= "Content-Type: text/plain; ";
else $headers .= "Content-Type: text/html; ";
$headers .= "charset=GB2312\n";
if($cc) $headers .= "cc: $cc\n";
if($bcc) $headers .= "bcc: $bcc";
$comment = stripslashes($comment);
$comment = str_replace("\n\r","\n", $comment);
return mail($recipient , $subject , $comment , $headers);
}
// 求指定目录下的文件信息
function get_dirinfo($path) {
$handle=@opendir($path);
while($info = readdir($handle)) {
if($info != "." && $info != "..") {
$dir[] = $info;
}
}
closedir($handle);
return $dir;
}
// 删除文件的函数
function z_unlink($filename) {
@chmod($filename,0777);
$handle = @unlink($filename);
if(@file_exists($filename)) {
@chmod($filename,0775);
$handle=@unlink($filename);
}
return $handle;
}
// 读取指定文件内容
function zReadFile($filename) {
if(!file_exists($filename)) return '';
$f = fopen($filename,"r");
$str = fread($f, filesize($filename));
fclose($f);
return $str;
}
// 使用指定文件已给的数据
function zWriteFile($filename, $str) {
$f = fopen($filename,"w");
$lock=flock($f,2);
if($lock) {
fwrite($f,$str);
}
flock($f,3);
fclose($f);
}
// 检查指定的文件是不是正在Locking
function check_fileislocked($filename) {
$f=@fopen($filename,w);
$count = 0;
$break = true;
while(!@flock($f,2)) {
$count++;
if($count>10) {
$break = false;
break;
}
}
if($break!=false) @flock($f,3);
@fclose($f);
}
// 循环删除目录
function zRmDir($path) {
$directory = dir($path);
while($entry = $directory->read()) {
if ($entry != "." && $entry != "..") {
if (Is_Dir($path."/".$entry)) {
zRmDir($path."/".$entry);
} else {
@UnLink ($path."/".$entry);
}
}
}
$directory->close();
@RmDir($path);
}
?>