function.inc.php超越php


Posted in PHP onDecember 09, 2006

<?php
/**
 * Global Function
 *
 * @author   Avenger <avenger@php.net>
 * @version 1.14 $Id 2003-05-30 10:10:08 $
 */
/**
 * 弹出提示框
 *
 * @access public
 * @param string $txt 弹出一个提示框,$txt为要弹出的内容
 * @return void
 */
function popbox($txt) {
    echo "<script language='JavaScript'>alert('".$txt."')</script>";
}
/**
 * 非法操作警告
 *
 * @access public
 * @param string $C_alert   提示的错误信息
 * @param string $I_goback  返回后返回到哪一页,不指定则不返回
 * @return void
 */
function alert($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>";
    }
}
/**
 * 产生随机字符串
 *
 * 产生一个指定长度的随机字符串,并返回给用户
 *
 * @access public
 * @param int $len  产生字符串的位数
 * @return string 
 */
function randstr($len=6) {
    $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@#~'; // characters to build the password from
    mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generater (must be done)
    $password='';
    while(strlen($password)<$len)
        $password.=substr($chars,(mt_rand()%strlen($chars)),1);
    return $password;
}
/**
 * 判断下拉菜音的选取项
 *
 * 可以判断字符串一和字符串二是否相等.从而使相等的项目在下拉菜单中被选择
 *
 * @access public
 * @param string $str1  要比较的字符串一
 * @param string $str2  要比较的字符串二
 * @return string       相等返回字符串"selected",否则返回空字符串
 */
function ckselect($str1,$str2) {
    if($str1==$str2) {
        return ' selected';
    }
    return '';
}
/**
 * 一个自定义的Ftp函数
 *
 * @access private
 * @return void
 */
function myftp($ftp_server,$ftp_port,$ftp_username,$ftp_password,$ftp_path='/') {
    $ftpid=@ftp_connect($ftp_server,$ftp_port) or die('Connect To Ftp Server Error!');
    @ftp_login($ftpid,$ftp_username,$ftp_password) or die('Login Ftp Error!');
    @ftp_chdir($ftpid,'/'.$ftp_path) or die('Chdir Error!');
    return $ftpid;
}
/**
 * 截取中文部分字符串
 *
 * 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
 *
 * @access public
 * @param string    $str    要处理的字符串
 * @param int       $strlen 要截取的长度默认为10
 * @param string    $other  是否要加上省略号,默认会加上
 * @return string
 */
function showtitle($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;
}
/**
 * 制作链接
 *
 * @access public
 * @param string    url         要链接到的网址
 * @param string    linktext    显示的链接文字
 * @param string    target      目标框架
 * @param string    extras      扩展参数
 * @return string
 */
function make_link ($url, $linktext=false, $target=false, $extras=false) {
    return sprintf("<a href=\"%s\"%s%s>%s</a>",
        $url,
        ($target ? ' target="'.$target.'"' : ''),
        ($extras ? ' '.$extras : ''),
        ($linktext ? $linktext : $url)
    );
}
/**
 * 格式化用户评论
 *
 * @access public
 * @param string
 * @return void
 */
function clean_note($text) {
    $text = htmlspecialchars(trim($text));
    /* turn urls into links */
    $text = preg_replace("/((mailto|http|ftp|nntp|news):.+?)(>|\s|\)|\"|\.\s|$)/","<a href=\"\1\">\1</a>\3",$text);
    /* this 'fixing' code will go away eventually. */
    $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);
    }
    /* <p> tags make things look awfully weird (breaks things out of the <code>
       tag). Just convert them to <br>'s
    */
    $text = str_replace (array ('<P>', '<p>'), '<br>', $text);
    /* Remove </p> tags to prevent it from showing up in the note */
    $text = str_replace (array ('</P>', '</p>'), '', $text);
    /* preserve linebreaks */
    $text = str_replace("\n", "<br>", $text);
    /* this will only break long lines */
    if (function_exists("wordwrap")) {
        $text = wordwrap($text);
    }
    // Preserve spacing of user notes
    $text = str_replace("  ", "  ", $text);
    return $text;
}
/**
 * 获取图象信息的函数
 *
 * 一个全面获取图象信息的函数
 *
 * @access public
 * @param string $img 图片路径
 * @return array
 */
function getimageinfo($img) {
    $img_info = getimagesize($img);
    switch ($img_info[2]) {
    case 1:
    $imgtype = "GIF";
    break;
    case 2:
    $imgtype = "JPG";
    break;
    case 3:
    $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;
}
/**
 * 计算当前时间
 *
 * 以微秒为单位返回当前系统的时间
 *
 * @access public
 * @return real
 */
function getmicrotime() {
    $tmp = explode(' ', microtime());
    return (real)$tmp[1]. substr($tmp[0], 1);
}
/**
 * 写文件操作
 *
 * @access public
 * @param bool
 * @return void
 */
function wfile($file,$content,$mode='w') {
    $oldmask = umask(0);
    $fp = fopen($file, $mode);
    if (!$fp) return false;
    fwrite($fp,$content);
    fclose($fp);
    umask($oldmask);
    return true;
}
/**
 * 加载模板文件
 *
 * @access public
 * @return void
 */
function tpl_load($tplfile,$path='./templates/',$empty='remove') {
    global $tpl;
    $path ? '' : $path='./templates/'; 
    require_once 'HTML/Template/PHPLIB.php';
    $tpl = new Template_PHPLIB($path,$empty);
    $tpl->setFile('main',$tplfile);
}
/**
 * 模板解析输出
 *
 * @access public
 * @return void
 */
function tpl_output() {
    global $tpl;
    $tpl->parse('output','main');
    $tpl->p('output');
}
/**
 * 邮件发送函数
 *
 * @access public private
 * @param bool
 * @return void
 */
function mailSender($from, $to, $title, $content) {
    $from ? $from = 'sender@phpe.net' : '';
    $title ? $title = 'From Exceed PHP...' : '';
    $sig = "
      感谢您使用我们的服务.\n\n
                                                Exceed PHP(超越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")) {
        return true;
    } else {
        return false;
    }
}
function br2none($str) {
    return str_replace(array('<br>', '<br />'), "", $str);
}
/**
 * UBB解析
 *
 * @param      none
 * @access     public
 * @return     void
*/
function ubbParse($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('<?', '<?', $txt);
        }
    }
    // pre and quote
    //error_reporting(E_ALL);
    $txt = preg_replace( "#\[quote\](.+?)\[/quote\]#is", "<blockquote>\1</blockquote>", $txt );
    $txt = preg_replace( "#\[code\](.+?)\[/code\]#ise", "'<pre class=php>'.br2none('').'</pre>'", $txt );
    // Colors 支持?套
    while( preg_match( "#\[color=([^\]]+)\](.+?)\[/color\]#is", $txt ) ) {
        $txt = preg_replace( "#\[color=([^\]]+)\](.+?)\[/color\]#is", "<span style='color:\1'>\2</span>", $txt );
    }
    // Align
    $txt = preg_replace( "#\[center\](.+?)\[/center\]#is", "<center>\1</center>", $txt );
    $txt = preg_replace( "#\[left\](.+?)\[/left\]#is", "<div align=left>\1</div>", $txt );
    $txt = preg_replace( "#\[right\](.+?)\[/right\]#is", "<div align=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 );
    // email tags
    // [email]avenger@php.net[/email]   [email=avenger@php.net]Email me[/email]
    $txt = preg_replace( "#\[email\](\S+?)\[/email\]#i"                                                                , "<a href='mailto:\1'>\1</a>", $txt );
    $txt = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#i"  , "<a href='mailto:\1'>\2</a>", $txt );
    $txt = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i"                       , "<a href='mailto:\1'>\2</a>", $txt );
    // url tags
    // [url]http://www.phpe.net[/url]   [url=http://www.phpe.net]Exceed PHP![/url]
    $txt = preg_replace( "#\[url\](\S+?)\[/url\]#i"                                       , "<a href='\1' target='_blank'>\1</a>", $txt );
    $txt = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#i" , "<a href='\1' target='_blank'>\2</a>", $txt );
    $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i"                       , "<a href='\1' target='_blank'>\2</a>", $txt );
    // Start off with the easy stuff
    $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 );
    // Header text
    $txt = preg_replace( "#\[h([1-6])\](.+?)\[/h[1-6]\]#is", "<h\1>\2</h\1>", $txt );
    // Images
    $txt = preg_replace( "#\[img\](.+?)\[/img\]#i", "<a href='\1' target='_blank'><img alt='Click to fullsize' 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*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/attach\]#i" , "<a href='\2' target='_blank'><b>相关附件:</b>\1</a>", $txt );
    $txt = preg_replace( "#\[attach\s*=\s*(\S+?)\s*\](.*?)\[\/attach\]#i"                       , "<a href='\2' target='_blank'><b>相关附件:</b>\1</a>", $txt );
    // Iframe
    $txt = preg_replace( "#\[iframe\](.+?)\[/iframe\]#i", "<div align='center'><iframe src='\1' style='width:96%;height:400px'></iframe><br clear='all'><a href='\1' target='_blank'>在新窗口打开链接</a></div>", $txt );
    // (c) (r) and (tm)
    $txt = preg_replace( "#\(c\)#i"     , "©" , $txt );
    $txt = preg_replace( "#\(tm\)#i"    , "™" , $txt );
    $txt = preg_replace( "#\(r\)#i"     , "®"  , $txt );
    return $txt;
}
//重新格式化日期
function format_date($date) {
    if (!preg_match('/^\d+$/', $date)) $date = strtotime(trim($date));
    $sec = time() - $date;
    //Sec 1 day is 86400
    if ($sec < 86400) {
        return round($sec/3600). ' hours ago';
    } elseif ($sec < (86400 * 7)) {
        return round($sec/86400). ' days ago';
    } elseif ($sec < (86400 * 7 * 4)) {
        return round($sec/(86400*7)). ' weeks ago';
    } else {
        return date('Y-m-d', $date);
    }
}
?>

PHP 相关文章推荐
PHP 类型转换函数intval
Jun 20 PHP
php 冒泡排序 交换排序法
May 10 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
php错误级别的设置方法
Jun 17 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php程序内部post数据的方法
Mar 31 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
粗略计算在线时间,bug:ip相同
Dec 09 #PHP
用PHP函数解决SQL injection
Dec 09 #PHP
php中处理模拟rewrite 效果
Dec 09 #PHP
如何写php程序?
Dec 08 #PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 #PHP
从网上搜到的phpwind 0day的代码
Dec 07 #PHP
ajax缓存问题解决途径
Dec 06 #PHP
You might like
第九节--绑定
2006/11/16 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
Yii清理缓存的方法
2016/01/06 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python装饰器深入学习
2018/04/06 Python
详解python调用cmd命令三种方法
2019/07/08 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
学python需要去培训机构吗
2020/07/01 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
北京奥运会口号
2014/06/21 职场文书
体育馆的标语
2014/06/24 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
离婚起诉书范本
2015/05/18 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
JS实现简单九宫格抽奖
2022/06/28 Javascript