分享

多菜鸟的PHP常用函数类...

 hongjuesir 2006-10-29
  1. <?php
  2. class useful{
  3. /*
  4.   * 常用函数类
  5.   * 作    者:多菜鸟
  6.   * 联系邮箱:kingerq AT msn DOT com
  7.   * 创建时间:2005-07-18
  8.   * 来源:http://blog.csdn.net/kingerq
  9.   */
  10.  
  11. /*
  12.   * 功能:格式化数字,以标准MONEY格式输出
  13.   */
  14.  
  15. function formatnumber($num){
  16.   return number_format($num, 2, ".", ",");
  17. }
  18.  
  19. /*
  20.   * 功能:格式化文本,将\n转成<br>等
  21.   * 参数:$string 来源字符串
  22.   * 返回:处理后的字符串
  23.   */
  24. function formatstring($string = ""){
  25.   $string = preg_replace(array("/ /", "/ /"), array(" ", "  "), $string);
  26.   return nl2br($string);
  27. }
  28.  
  29. /*
  30.   * 功能:格式化文本输出
  31.   * 参数 $text 为需格式化的文本内容
  32.   */
  33. function formatcontent($text){
  34.   $trans = get_html_translation_table(HTML_SPECIALCHARS);
  35.   $trans = array_flip($trans);
  36.   $text = strtr($text, $trans);
  37.   //$text = str_replace("\n", "<br>", $text);
  38.   //$text = str_replace(" ", " ", $text);
  39.   return $text;
  40. }
  41.  
  42. /*
  43.   * 将字节转换成Kb或者Mb...
  44.   * 参数 $num为字节大小
  45.   */
  46. function bitsize($num){
  47.   if(!preg_match("/^[0-9]+$/", $num)) return 0;
  48.   $type = array( "B", "KB", "MB", "GB", "TB", "PB" );
  49.  
  50.   $j = 0;
  51.   while( $num >= 1024 ) {
  52.    if( $j >= 5 ) return $num.$type[$j];
  53.    $num = $num / 1024;
  54.    $j++;
  55.   }
  56.   return $num.$type[$j];
  57. }
  58.  
  59. /*
  60.   * 功能:不足3的倍数位的数字,用0补足
  61.   * $num 需补充的数字
  62.   * 返回补充完整的数字串
  63.   */
  64. function prefix($num){
  65.   if( strlen( $num ) % 3 == 0 ) {
  66.    return $this->prefix("0".$num);
  67.   }
  68.   return $num;
  69. }
  70.  
  71. /*
  72.   * 功能:连续建目录
  73.   * $dir 目录字符串
  74.   */
  75. function makedir( $dir, $mode = "0777" ) {
  76.   if( ! $dir ) return 0;
  77.   $dir = str_replace( "\\", "/", $dir );
  78.  
  79.   $mdir = "";
  80.   foreach( explode( "/", $dir ) as $val ) {
  81.    $mdir .= $val."/";
  82.    if( $val == ".." || $val == "." ) continue;
  83.    
  84.    if( ! file_exists( $mdir ) ) {
  85.     if(!@mkdir( $mdir, $mode )){
  86.      echo "创建目录 [".$mdir."]失败.";
  87.      exit;
  88.     }
  89.    }
  90.   }
  91.   return true;
  92. }
  93.  
  94. /*
  95.   * 功能:检测时间的正确性
  96.   * $date 为时间,例:YYYY-MM-DD
  97.   * 返回:通过返回true,反之返回false
  98.   */
  99. function chkdate( $date ) {
  100.   $d = explode( "-", $date );
  101.   if( checkdate( $d[1], $d[2], $d[0] ) ) {
  102.    return true;
  103.   }else {
  104.    return false;
  105.   }
  106. }
  107.  
  108. /*
  109.   * 防注入处理(为变量加入斜杠)函数
  110.   * 参数 $array 为防注入变量数组
  111.   */
  112. function add_s(&$array){
  113.   foreach($array as $key=>$value){
  114.    if(!is_array($value)){
  115.     $array[$key]=addslashes($value);
  116.    }else{
  117.     $this->add_s($array[$key]);
  118.    }
  119.   }
  120. }
  121.  
  122. /*
  123.   * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码)
  124.   * 参数 $array 为需转换的字符串或者数组
  125.   */
  126. function specialhtml(&$array){
  127.   if(is_array($array)){//数组处理
  128.    foreach($array as $key=>$value){
  129.     if(!is_array($value)){
  130.      $array[$key]=htmlspecialchars($value);
  131.     }else{
  132.      $this->specialhtml($array[$key]);
  133.     }
  134.    }
  135.   }else{
  136.    $array = htmlspecialchars($array);
  137.   }
  138. }
  139.  
  140. /*
  141.   * 可以避免乱码的截取汉字
  142.   * 参数 $str 为字符串,$start 为开始字符,$len 结束字符
  143.   * 返回截取后的字符
  144.   */
  145. function msubstr($str, $start, $len) { 
  146.   $tmpstr = "";
  147.   $strlen = $start + $len;
  148.   for($i = 0; $i < $strlen; $i++) { 
  149.    if(ord(substr($str, $i, 1)) > 0xa0) { 
  150.     $tmpstr .= substr($str, $i, 2);
  151.     $i++;
  152.    } else 
  153.     $tmpstr .= substr($str, $i, 1);
  154.   } 
  155.   return $tmpstr;
  156. }
  157.  
  158. /*
  159.   * 功能:综合提示JS代码输出
  160.   * 参数 $msg 为提示信息
  161.   *      $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回
  162.   * 输出提示代码并结束程序
  163.   */
  164. function alert_msg($msg, $direct = "0"){
  165.   switch($direct){
  166.    case 0://提示
  167.     $script = "";
  168.    case 1://提示刷新返回
  169.     $script = "location.href=\"".$_SERVER["HTTP_REFERER"]."\";";
  170.     break;
  171.    case 2://提示返回
  172.     $script = "history.back();";
  173.     break;
  174.    default://提示转向指定页面
  175.     $script = "location.href=\"".$direct."\";";
  176.   }
  177.   echo "<script language=‘javascript‘>window.alert(‘".$msg."‘);".$script."</script>";
  178.   exit;
  179. }
  180.  
  181. /*
  182.   * 功能:取得给定日期所在周的开始日期和结束日期
  183.   * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD
  184.   *       $first 一周以星期一还是星期天开始,0为星期天,1为星期一
  185.   * 返回:数组array("开始日期", "结束日期");
  186.   */
  187. function aweek($gdate = "", $first = 0){
  188.   if(!$gdate) $gdate = date("Y-m-d");
  189.   $w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6
  190.   $dn = $w ? $w - $first : 6;//要减去的天数
  191.   $st = date("Y-m-d", strtotime("$gdate -".$dn." days"));
  192.   $en = date("Y-m-d", strtotime("$st +6 days"));
  193.   return array($st, $en);//返回开始和结束日期
  194. }
  195.  
  196. /*
  197.   * 功能:检测页面是否合法连接过来
  198.   * 如果为非法,就转向到登陆窗口
  199.   */
  200. function checkurl(){
  201.   //如果直接从浏览器连接到页面,就连接到登陆窗口
  202.   //echo "referer:".$_SERVER[‘HTTP_REFERER‘];
  203.   if(!isset($_SERVER[HTTP_REFERER])) {
  204.    header("location: index.php");
  205.    exit;
  206.   }
  207.   $urlar = parse_url($_SERVER[HTTP_REFERER]);
  208.   //如果页面的域名不是服务器域名,就连接到登陆窗口
  209.   if($_SERVER["HTTP_HOST"] != $urlar["host"]) {
  210.    header("location: index.php");
  211.    exit;
  212.   } 
  213. }
  214.  
  215. /*
  216.   * 读取文件内容
  217.   * 参数 $file 为文件名及完整路径
  218.   * 返回文件内容
  219.   */
  220. function readfiles($file){
  221.   $tdata = "";
  222.   $fp = fopen($file, "r");
  223.  
  224.   if(filesize($file) <= 0) return;
  225.  
  226.   while($data = fread($fp, filesize($file))){
  227.    $tdata .= $data;
  228.   }
  229.   fclose($fp);
  230.   return $tdata;
  231. }
  232. }
  233. ?>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多