function.inc.php超越php

时间:2021-05-28

<?php
/**
*GlobalFunction
*
*@authorAvenger<avenger@php.net>
*@version1.14$Id2003-05-3010:10:08$
*/
/**
*弹出提示框
*
*@accesspublic
*@paramstring$txt弹出一个提示框,$txt为要弹出的内容
*@returnvoid
*/
functionpopbox($txt){
echo"<scriptlanguage='JavaScript'>alert('".$txt."')</script>";
}
/**
*非法操作警告
*
*@accesspublic
*@paramstring$C_alert提示的错误信息
*@paramstring$I_goback返回后返回到哪一页,不指定则不返回
*@returnvoid
*/
functionalert($C_alert,$I_goback='main.php'){
if(!empty($I_goback)){
echo"<script>alert('$C_alert');window.location.href='$I_goback';</script>";
}else{
echo"<script>alert('$C_alert');</script>";
}
}
/**
*产生随机字符串
*
*产生一个指定长度的随机字符串,并返回给用户
*
*@accesspublic
*@paramint$len产生字符串的位数
*@returnstring
*/
functionrandstr($len=6){
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@#~';//characterstobuildthepasswordfrom
mt_srand((double)microtime()*1000000*getmypid());//seedtherandomnumbergenerater(mustbedone)
$password='';
while(strlen($password)<$len)
$password.=substr($chars,(mt_rand()%strlen($chars)),1);
return$password;
}
/**
*判断下拉菜音的选取项
*
*可以判断字符串一和字符串二是否相等.从而使相等的项目在下拉菜单中被选择
*
*@accesspublic
*@paramstring$str1要比较的字符串一
*@paramstring$str2要比较的字符串二
*@returnstring相等返回字符串"selected",否则返回空字符串
*/
functionckselect($str1,$str2){
if($str1==$str2){
return'selected';
}
return'';
}
/**
*一个自定义的Ftp函数
*
*@accessprivate
*@returnvoid
*/
functionmyftp($ftp_server,$ftp_port,$ftp_username,$ftp_password,$ftp_path='/'){
$ftpid=@ftp_connect($ftp_server,$ftp_port)ordie('ConnectToFtpServerError!');
@ftp_login($ftpid,$ftp_username,$ftp_password)ordie('LoginFtpError!');
@ftp_chdir($ftpid,'/'.$ftp_path)ordie('ChdirError!');
return$ftpid;
}
/**
*截取中文部分字符串
*
*截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
*
*@accesspublic
*@paramstring$str要处理的字符串
*@paramint$strlen要截取的长度默认为10
*@paramstring$other是否要加上省略号,默认会加上
*@returnstring
*/
functionshowtitle($str,$strlen=10,$other=true){
$j=0;
for($i=0;$i<$strlen;$i++)
if(ord(substr($str,$i,1))>0xa0)$j++;
if($j%2!=0)$strlen++;
$rstr=substr($str,0,$strlen);
if(strlen($str)>$strlen&&$other){$rstr.='...';}
return$rstr;
}
/**
*制作链接
*
*@accesspublic
*@paramstringurl要链接到的网址
*@paramstringlinktext显示的链接文字
*@paramstringtarget目标框架
*@paramstringextras扩展参数
*@returnstring
*/
functionmake_link($url,$linktext=false,$target=false,$extras=false){
returnsprintf("<ahref=\"%s\"%s%s>%s</a>",
$url,
($target?'target="'.$target.'"':''),
($extras?''.$extras:''),
($linktext?$linktext:$url)
);
}
/**
*格式化用户评论
*
*@accesspublic
*@paramstring
*@returnvoid
*/
functionclean_note($text){
$text=htmlspecialchars(trim($text));

$text=preg_replace("/((mailto|http|ftp|nntp|news):.+?)(&gt;|\s|\)|\"|\.\s|$)/","<ahref=\"\1\">\1</a>\3",$text);

$fixes=array('<br>','<p>','</p>');
reset($fixes);
while(list(,$f)=each($fixes)){
$text=str_replace(htmlspecialchars($f),$f,$text);
$text=str_replace(htmlspecialchars(strtoupper($f)),$f,$text);
}

$text=str_replace(array('<P>','<p>'),'<br>',$text);

$text=str_replace(array('</P>','</p>'),'',$text);

$text=str_replace("\n","<br>",$text);

if(function_exists("wordwrap")){
$text=wordwrap($text);
}
//Preservespacingofusernotes
$text=str_replace("","&nbsp;",$text);
return$text;
}
/**
*获取图象信息的函数
*
*一个全面获取图象信息的函数
*
*@accesspublic
*@paramstring$img图片路径
*@returnarray
*/
functiongetimageinfo($img){
$img_info=getimagesize($img);
switch($img_info[2]){
case1:
$imgtype="GIF";
break;
case2:
$imgtype="JPG";
break;
case3:
$imgtype="PNG";
break;
}
$img_size=ceil(filesize($img)/1000)."k";
$new_img_info=array(
"width"=>$img_info[0],
"height"=>$img_info[1],
"type"=>$imgtype,
"size"=>$img_size
);
return$new_img_info;
}
/**
*计算当前时间
*
*以微秒为单位返回当前系统的时间
*
*@accesspublic
*@returnreal
*/
functiongetmicrotime(){
$tmp=explode('',microtime());
return(real)$tmp[1].substr($tmp[0],1);
}
/**
*写文件操作
*
*@accesspublic
*@parambool
*@returnvoid
*/
functionwfile($file,$content,$mode='w'){
$oldmask=umask(0);
$fp=fopen($file,$mode);
if(!$fp)returnfalse;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
returntrue;
}
/**
*加载模板文件
*
*@accesspublic
*@returnvoid
*/
functiontpl_load($tplfile,$path='./templates/',$empty='remove'){
global$tpl;
$path?'':$path='./templates/';
require_once'HTML/Template/PHPLIB.php';
$tpl=newTemplate_PHPLIB($path,$empty);
$tpl->setFile('main',$tplfile);
}
/**
*模板解析输出
*
*@accesspublic
*@returnvoid
*/
functiontpl_output(){
global$tpl;
$tpl->parse('output','main');
$tpl->p('output');
}
/**
*邮件发送函数
*
*@accesspublicprivate
*@parambool
*@returnvoid
*/
functionmailSender($from,$to,$title,$content){
$from?$from='sender@phpe.net':'';
$title?$title='FromExceedPHP...':'';
$sig="
感谢您使用我们的服务.\n\n
ExceedPHP(超越PHP)\n
$maildate\n\n
---------------------------------------------------------------------------------------
\n\n
去发现极限方法的唯一办法就是去超越它\n
超越PHP欢迎您(http://www.phpe.net)\n
";
$content.=$sig;
if(@mail($to,$title,$content,"From:$from\nReply-To:$from")){
returntrue;
}else{
returnfalse;
}
}
functionbr2none($str){
returnstr_replace(array('<br>','<br/>'),"",$str);
}
/**
*UBB解析
*
*@paramnone
*@accesspublic
*@returnvoid
*/
functionubbParse($txt,$coverhtml=0){
if($coverhtml==0)$txt=nl2br(new_htmlspecialchars($txt));//BR和HTML转换
//只转换BR,不转换HTML
if($coverhtml==1){
if(!preg_match('/<\s*(p|br)\s*>/is',$txt)&&!preg_match('/<table.+<\/table>/is',$txt)){
$txt=strip_tags($txt);
$txt=nl2br($txt);
}else{
$txt=str_replace('<?','&lt;?',$txt);
}
}
//preandquote
//error_reporting(E_ALL);
$txt=preg_replace("#\[quote\](.+?)\[/quote\]#is","<blockquote>\1</blockquote>",$txt);
$txt=preg_replace("#\[code\](.+?)\[/code\]#ise","'<preclass=php>'.br2none('').'</pre>'",$txt);
//Colors支持篏套
while(preg_match("#\[color=([^\]]+)\](.+?)\[/color\]#is",$txt)){
$txt=preg_replace("#\[color=([^\]]+)\](.+?)\[/color\]#is","<spanstyle='color:\1'>\2</span>",$txt);
}
//Align
$txt=preg_replace("#\[center\](.+?)\[/center\]#is","<center>\1</center>",$txt);
$txt=preg_replace("#\[left\](.+?)\[/left\]#is","<divalign=left>\1</div>",$txt);
$txt=preg_replace("#\[right\](.+?)\[/right\]#is","<divalign=right>\1</div>",$txt);
//Sub&sup
$txt=preg_replace("#\[sup\](.+?)\[/sup\]#is","<sup>\1</sup>",$txt);
$txt=preg_replace("#\[sub\](.+?)\[/sub\]#is","<sub>\1</sub>",$txt);
//emailtags
//[email]avenger@php.net[/email][email=avenger@php.net]Emailme[/email]
$txt=preg_replace("#\[email\](\S+?)\[/email\]#i","<ahref='mailto:\1'>\1</a>",$txt);
$txt=preg_replace("#\[email\s*=\s*\&quot\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\&quot\;\s*\](.*?)\[\/email\]#i","<ahref='mailto:\1'>\2</a>",$txt);
$txt=preg_replace("#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i","<ahref='mailto:\1'>\2</a>",$txt);
//urltags
//[url]http://www.phpe.net[/url][url=http://www.phpe.net]ExceedPHP![/url]
$txt=preg_replace("#\[url\](\S+?)\[/url\]#i","<ahref='\1'target='_blank'>\1</a>",$txt);
$txt=preg_replace("#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#i","<ahref='\1'target='_blank'>\2</a>",$txt);
$txt=preg_replace("#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i","<ahref='\1'target='_blank'>\2</a>",$txt);
//Startoffwiththeeasystuff
$txt=preg_replace("#\[b\](.+?)\[/b\]#is","<b>\1</b>",$txt);
$txt=preg_replace("#\[i\](.+?)\[/i\]#is","<i>\1</i>",$txt);
$txt=preg_replace("#\[u\](.+?)\[/u\]#is","<u>\1</u>",$txt);
$txt=preg_replace("#\[s\](.+?)\[/s\]#is","<s>\1</s>",$txt);
//Headertext
$txt=preg_replace("#\[h([1-6])\](.+?)\[/h[1-6]\]#is","<h\1>\2</h\1>",$txt);
//Images
$txt=preg_replace("#\[img\](.+?)\[/img\]#i","<ahref='\1'target='_blank'><imgalt='Clicktofullsize'src='\1'border='0'onload='javascript:if(this.width>500)this.width=500'align='center'hspace='10'vspace='10'></a><br/>",$txt);
//Attach
$txt=preg_replace("#\[attach\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/attach\]#i","<ahref='\2'target='_blank'><b>相关附件:</b>\1</a>",$txt);
$txt=preg_replace("#\[attach\s*=\s*(\S+?)\s*\](.*?)\[\/attach\]#i","<ahref='\2'target='_blank'><b>相关附件:</b>\1</a>",$txt);
//Iframe
$txt=preg_replace("#\[iframe\](.+?)\[/iframe\]#i","<divalign='center'><iframesrc='\1'style='width:96%;height:400px'></iframe><brclear='all'><ahref='\1'target='_blank'>在新窗口打开链接</a></div>",$txt);
//(c)(r)and(tm)
$txt=preg_replace("#\(c\)#i","&copy;",$txt);
$txt=preg_replace("#\(tm\)#i","&#153;",$txt);
$txt=preg_replace("#\(r\)#i","&reg;",$txt);
return$txt;
}
//重新格式化日期
functionformat_date($date){
if(!preg_match('/^\d+$/',$date))$date=strtotime(trim($date));
$sec=time()-$date;
//Sec1dayis86400
if($sec<86400){
returnround($sec/3600).'hoursago';
}elseif($sec<(86400*7)){
returnround($sec/86400).'daysago';
}elseif($sec<(86400*7*4)){
returnround($sec/(86400*7)).'weeksago';
}else{
returndate('Y-m-d',$date);
}
}
?>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章