zoukankan      html  css  js  c++  java
  • 常用的一些自定义PHP函数

    <?
    class useful{
    /*
    * 常用函数类
    /*
       * 功能:格式化数字,以标准MONEY格式输出
       */

    function formatnumber($num){
       return number_format($num, 2, ".", ",");
    }

    /*
       * 功能:格式化文本,将\n转成<br>等
       * 参数:$string 来源字符串
       * 返回:处理后的字符串
       */
    function formatstring($string = ""){
       $string = preg_replace(array("/ /", "/ /"), array("&nbsp;", "&nbsp;&nbsp;"), $string);
       return nl2br($string);
    }

    /*
       * 功能:格式化文本输出
       * 参数 $text 为需格式化的文本内容
       */
    function formatcontent($text){
       $trans = get_html_translation_table(HTML_SPECIALCHARS);
       $trans = array_flip($trans);
       $text = strtr($text, $trans);
       //$text = str_replace("\n", "<br>", $text);
       //$text = str_replace(" ", "&nbsp;", $text);
       return $text;
    }

    /*
       * 将字节转换成Kb或者Mb...
       * 参数 $num为字节大小
       */
    function bitsize($num){
       if(!preg_match("/^[0-9]+$/", $num)) return 0;
       $type = array( "B", "KB", "MB", "GB", "TB", "PB" );

       $j = 0;
       while( $num >= 1024 ) {
        if( $j >= 5 ) return $num.$type[$j];
        $num = $num / 1024;
        $j++;
       }
       return $num.$type[$j];
    }

    /*
       * 功能:不足3的倍数位的数字,用0补足
       * $num 需补充的数字
       * 返回补充完整的数字串
       */
    function prefix($num){
       if( strlen( $num ) % 3 == 0 ) {
        return $this->prefix("0".$num);
       }
       return $num;
    }

    /*
       * 功能:连续建目录
       * $dir 目录字符串
       */
    function makedir( $dir, $mode = "0777" ) {
       if( ! $dir ) return 0;
       $dir = str_replace( "\\", "/", $dir );

       $mdir = "";
       foreach( explode( "/", $dir ) as $val ) {
        $mdir .= $val."/";
        if( $val == ".." || $val == "." ) continue;
      
        if( ! file_exists( $mdir ) ) {
         if(!@mkdir( $mdir, $mode )){
          echo "创建目录 [".$mdir."]失败.";
          exit;
         }
        }
       }
       return true;
    }

    /*
       * 功能:检测时间的正确性
       * $date 为时间,例:YYYY-MM-DD
       * 返回:通过返回true,反之返回false
       */
    function chkdate( $date ) {
       $d = explode( "-", $date );
       if( checkdate( $d[1], $d[2], $d[0] ) ) {
        return true;
       }else {
        return false;
       }
    }

    /*
       * 防注入处理(为变量加入斜杠)函数
       * 参数 $array 为防注入变量数组
       */
    function add_s(&$array){
       foreach($array as $key=>$value){
        if(!is_array($value)){
         $array[$key]=addslashes($value);
        }else{
         $this->add_s($array[$key]);
        }
       }
    }

    /*
       * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码)
       * 参数 $array 为需转换的字符串或者数组
       */
    function specialhtml(&$array){
       if(is_array($array)){//数组处理
        foreach($array as $key=>$value){
         if(!is_array($value)){
          $array[$key]=htmlspecialchars($value);
         }else{
          $this->specialhtml($array[$key]);
         }
        }
       }else{
        $array = htmlspecialchars($array);
       }
    }

    /*
       * 可以避免乱码的截取汉字
       * 参数 $str 为字符串,$start 为开始字符,$len 结束字符
       * 返回截取后的字符
       */
    function msubstr($str, $start, $len) {
       $tmpstr = "";
       $strlen = $start + $len;
       for($i = 0; $i < $strlen; $i++) {
        if(ord(substr($str, $i, 1)) > 0xa0) {
         $tmpstr .= substr($str, $i, 2);
         $i++;
        } else
         $tmpstr .= substr($str, $i, 1);
       }
       return $tmpstr;
    }

    /*
       * 功能:综合提示JS代码输出
       * 参数 $msg 为提示信息
       *       $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回
       * 输出提示代码并结束程序
       */
    function alert_msg($msg, $direct = "0"){
       switch($direct){
        case '0'://提示
         $script = "";
        case '1'://提示刷新返回
         $script = "location.href=\"".$_SERVER["HTTP_REFERER"]."\";";
         break;
        case '2'://提示返回
         $script = "history.back();";
         break;
        default://提示转向指定页面
         $script = "location.href=\"".$direct."\";";
       }
       echo "<script language='javascript'>window.alert('".$msg."');".$script."</script>";
       exit;
    }

    /*
       * 功能:取得给定日期所在周的开始日期和结束日期
       * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD
       *        $first 一周以星期一还是星期天开始,0为星期天,1为星期一
       * 返回:数组array("开始日期", "结束日期");
       */
    function aweek($gdate = "", $first = 0){
       if(!$gdate) $gdate = date("Y-m-d");
       $w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6
       $dn = $w ? $w - $first : 6;//要减去的天数
       $st = date("Y-m-d", strtotime("$gdate -".$dn." days"));
       $en = date("Y-m-d", strtotime("$st +6 days"));
       return array($st, $en);//返回开始和结束日期
    }

    /*
       * 功能:检测页面是否合法连接过来
       * 如果为非法,就转向到登陆窗口
       */
    function checkurl(){
       //如果直接从浏览器连接到页面,就连接到登陆窗口
       //echo "referer:".$_SERVER['HTTP_REFERER'];
       if(!isset($_SERVER['HTTP_REFERER'])) {
        header("location: index.php");
        exit;
       }
       $urlar = parse_url($_SERVER['HTTP_REFERER']);
       //如果页面的域名不是服务器域名,就连接到登陆窗口
       if($_SERVER["HTTP_HOST"] != $urlar["host"]) {
        header("location: index.php");
        exit;
       }
    }

    /*
       * 读取文件内容
       * 参数 $file 为文件名及完整路径
       * 返回文件内容
       */
    function readfiles($file){
       $tdata = "";
       $fp = fopen($file, "r");

       if(filesize($file) <= 0) return;

       while($data = fread($fp, filesize($file))){
        $tdata .= $data;
       }
       fclose($fp);
       return $tdata;
    }
    }
    ?>

  • 相关阅读:
    拆点问题
    黑球白球
    3n+1b 备忘录方法
    实体entity、JavaBean、Model、POJO、domain的区别
    DB中的读写分离
    Jmeter干货 不常用却极其有用的几个地方
    自动化测试 自动化框架需要满足的事项
    自动化测试面试题库
    测试工程师面试准备之----测试基础
    别人的面试经历 软件测试工程师
  • 原文地址:https://www.cnblogs.com/kuyuecs/p/1330836.html
Copyright © 2011-2022 走看看