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 字符转义 注意事项
May 27 PHP
PHP Socket 编程
Apr 09 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
php中取得文件的后缀名?
Feb 20 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
Dec 02 PHP
PHP分享图片的生成方法
Apr 25 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
PHP 中dirname(_file_)讲解
2007/03/18 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
python操作oracle的完整教程分享
2018/01/30 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
Java语言程序设计测试题选择题部分
2014/04/03 面试题
思想品德课教学反思
2014/02/10 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
优秀教师个人材料
2014/12/15 职场文书
一年级小学生评语大全
2014/12/25 职场文书
作弊检讨书范文
2015/05/06 职场文书
python异常中else的实例用法
2021/06/15 Python