Discuz教程网

php常用函数类

[复制链接]
authicon dly 发表于 2011-1-7 12:37:38 | 显示全部楼层 |阅读模式
  1. <?

  2. class useful{

  3. /*

  4.   * 常用函数类

  5.   * 作     者:多菜鸟

  6.   * 联系邮箱:kingerq AT msn DOT com

  7.   * 创建时间:2005-07-18

  8.   * 来源:[url]http://blog.csdn.net/kingerq[/url]

  9.   */



  10. /*

  11.   * 功能:格式化数字,以标准MONEY格式输出

  12.   */

  13.   

  14. function formatnumber($num){

  15.    return number_format($num, 2, ".", ",");

  16. }



  17. /*

  18.   * 功能:格式化文本,将\\n转成<br>等

  19.   * 参数:$string 来源字符串

  20.   * 返回:处理后的字符串

  21.   */

  22. function formatstring($string = ""){

  23.    $string = preg_replace(array("/ /", "/ /"), array("&nbsp;", "&nbsp;&nbsp;"), $string);

  24.    return nl2br($string);

  25. }



  26. /*

  27.   * 功能:格式化文本输出

  28.   * 参数 $text 为需格式化的文本内容

  29.   */

  30. function formatcontent($text){

  31.    $trans = get_html_translation_table(HTML_SPECIALCHARS);

  32.    $trans = array_flip($trans);

  33.    $text = strtr($text, $trans);

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

  35.    //$text = str_replace(" ", "&nbsp;", $text);

  36.    return $text;

  37. }



  38. /*

  39.   * 将字节转换成Kb或者Mb...

  40.   * 参数 $num为字节大小

  41.   */

  42. function bitsize($num){

  43.    if(!preg_match("/^[0-9]+$/", $num)) return 0;

  44.    $type = array( "B", "KB", "MB", "GB", "TB", "B" );

  45.   

  46.    $j = 0;

  47.    while( $num >= 1024 ) {

  48.     if( $j >= 5 ) return $num.$type[$j];

  49.     $num = $num / 1024;

  50.     $j++;

  51.    }

  52.    return $num.$type[$j];

  53. }



  54. /*

  55.   * 功能:不足3的倍数位的数字,用0补足

  56.   * $num 需补充的数字

  57.   * 返回补充完整的数字串

  58.   */

  59. function prefix($num){

  60.    if( strlen( $num ) % 3 == 0 ) {

  61.     return $this->prefix("0".$num);

  62.    }

  63.    return $num;

  64. }



  65. /*

  66.   * 功能:连续建目录

  67.   * $dir 目录字符串

  68.   */

  69. function makedir( $dir, $mode = "0777" ) {

  70.    if( ! $dir ) return 0;

  71.    $dir = str_replace( "\\\\", "/", $dir );

  72.   

  73.    $mdir = "";

  74.    foreach( explode( "/", $dir ) as $val ) {

  75.     $mdir .= $val."/";

  76.     if( $val == ".." || $val == "." ) continue;

  77.    

  78.     if( ! file_exists( $mdir ) ) {

  79.      if(!@mkdir( $mdir, $mode )){

  80.       echo "创建目录 [".$mdir."]失败.";

  81.       exit;

  82.      }

  83.     }

  84.    }

  85.    return true;

  86. }



  87. /*

  88.   * 功能:检测时间的正确性

  89.   * $date 为时间,例:YYYY-MM-DD

  90.   * 返回:通过返回true,反之返回false

  91.   */

  92. function chkdate( $date ) {

  93.    $d = explode( "-", $date );

  94.    if( checkdate( $d[1], $d[2], $d[0] ) ) {

  95.     return true;

  96.    }else {

  97.     return false;

  98.    }

  99. }

  100.   

  101. /*

  102.   * 防注入处理(为变量加入斜杠)函数

  103.   * 参数 $array 为防注入变量数组

  104.   */

  105. function add_s(&$array){

  106.    foreach($array as $key=>$value){

  107.     if(!is_array($value)){

  108.      $array[$key]=addslashes($value);

  109.     }else{

  110.      $this->add_s($array[$key]);

  111.     }

  112.    }

  113. }



  114. /*

  115.   * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码)

  116.   * 参数 $array 为需转换的字符串或者数组

  117.   */

  118. function specialhtml(&$array){

  119.    if(is_array($array)){//数组处理

  120.     foreach($array as $key=>$value){

  121.      if(!is_array($value)){

  122.       $array[$key]=htmlspecialchars($value);

  123.      }else{

  124.       $this->specialhtml($array[$key]);

  125.      }

  126.     }

  127.    }else{

  128.     $array = htmlspecialchars($array);

  129.    }

  130. }



  131. /*

  132.   * 可以避免乱码的截取汉字

  133.   * 参数 $str 为字符串,$start 为开始字符,$len 结束字符

  134.   * 返回截取后的字符

  135.   */

  136. function msubstr($str, $start, $len) {

  137.    $tmpstr = "";

  138.    $strlen = $start + $len;

  139.    for($i = 0; $i < $strlen; $i++) {

  140.     if(ord(substr($str, $i, 1)) > 0xa0) {

  141.      $tmpstr .= substr($str, $i, 2);

  142.      $i++;

  143.     } else

  144.      $tmpstr .= substr($str, $i, 1);

  145.    }

  146.    return $tmpstr;

  147. }



  148. /*

  149.   * 功能:综合提示JS代码输出

  150.   * 参数 $msg 为提示信息

  151.   *       $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回

  152.   * 输出提示代码并结束程序

  153.   */

  154. function alert_msg($msg, $direct = "0"){

  155.    switch($direct){

  156.     case \'0\'://提示

  157.      $script = "";

  158.     case \'1\'://提示刷新返回

  159.      $script = "location.href=\\"".$_SERVER["HTTP_REFERER"]."\\";";

  160.      break;

  161.     case \'2\'://提示返回

  162.      $script = "history.back();";

  163.      break;

  164.     default://提示转向指定页面

  165.      $script = "location.href=\\"".$direct."\\";";

  166.    }

  167.    echo "<script language=\'javascript\'>window.alert(\'".$msg."\');".$script."</script>";

  168.    exit;

  169. }



  170. /*

  171.   * 功能:取得给定日期所在周的开始日期和结束日期

  172.   * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD

  173.   *        $first 一周以星期一还是星期天开始,0为星期天,1为星期一

  174.   * 返回:数组array("开始日期", "结束日期");

  175.   */

  176. function aweek($gdate = "", $first = 0){

  177.   if(!$gdate) $gdate = date("Y-m-d");

  178.   $w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6

  179.   $dn = $w ? $w - $first : 6;//要减去的天数

  180.   $st = date("Y-m-d", strtotime("$gdate -".$dn." days"));

  181.   $en = date("Y-m-d", strtotime("$st +6 days"));

  182.   return array($st, $en);//返回开始和结束日期

  183. }



  184. /*

  185.   * 功能:检测页面是否合法连接过来

  186.   * 如果为非法,就转向到登陆窗口

  187.   */

  188. function checkurl(){

  189.    //如果直接从浏览器连接到页面,就连接到登陆窗口

  190.    //echo "referer:".$_SERVER[\'HTTP_REFERER\'];

  191.    if(!isset($_SERVER[\'HTTP_REFERER\'])) {

  192.     header("location: index.php");

  193.     exit;

  194.    }

  195.    $urlar = parse_url($_SERVER[\'HTTP_REFERER\']);

  196.    //如果页面的域名不是服务器域名,就连接到登陆窗口

  197.    if($_SERVER["HTTP_HOST"] != $urlar["host"]) {

  198.     header("location: index.php");

  199.     exit;

  200.    }

  201. }



  202. /*

  203.   * 读取文件内容

  204.   * 参数 $file 为文件名及完整路径

  205.   * 返回文件内容

  206.   */

  207. function readfiles($file){

  208.    $tdata = "";

  209.    $fp = fopen($file, "r");

  210.   

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

  212.   

  213.    while($data = fread($fp, filesize($file))){

  214.     $tdata .= $data;

  215.    }

  216.    fclose($fp);

  217.    return $tdata;

  218. }

  219. }

  220. ?>
复制代码




上一篇:PHP的ASCII码转换类
下一篇:php四种常用排序方法的基本思想和
authicon YY大兔子 发表于 2011-6-21 22:00:17 | 显示全部楼层
哈哈  收了你
authicon haidideyu 发表于 2011-6-23 10:59:47 | 显示全部楼层
回贴下载呀
authicon 纤陌陌 发表于 2011-6-28 01:59:48 | 显示全部楼层
哈哈  收了你
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 07:48

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表