php常用函数3

 

<?php
class useful{
 
/*
  * 常用函数类
  * 作    者:多菜鸟
  * 联系邮箱:kingerq AT msn DOT com
  * 创建时间:2005-07-18
  * 来源:
http://blog.csdn.net/kingerq

  */

 
 
/*
  * 功能:格式化数字,以标准MONEY格式输出
  * number_format  2表示小数位,默认为0  .表示小数点输出  ,表示每三位数字分隔符
  */

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

 
 
/*
  * 功能:格式化文本,将/n转成<br>等
  * 参数:$string 来源字符串
  * 返回:处理后的字符串
  */

 
function formatstring($string = ""){
 
$string = preg_replace(array("//s+/", "//'/"), array(" ", "/"/""), $string) ;
  $string = htmlspecialchars($string);
 
return nl2br($string)
;
 
}

 
 
/*
  * 功能:格式化文本输出
  * 参数 $text 为需格式化的文本内容
get_html_translation_table(function,quotestyle)
参数描述
function

可选。规定返回哪个翻译表。默认是 HTML_SPECIALCHARS。

可能的值:

  • HTML_ENTITIES - 翻译所有需要 URL 编码的字符,以便正确地显示在网页上。
  • HTML_SPECIALCHARS - 翻译某些需要 URL 编码的字符,以便正确地显示在网页上。
salt

可选。定义如何对单引号和双引号进行编码。默认是 ENT_COMPAT。

可能的值:

  • ENT_COMPAT - 编码双引号,不编码单引号。
  • ENT_QUOTES - 编码双引号和单引号。
  • ENT_NOQUOTES - 不编码单引号或双引号。
strtr(string,from,to)或者
strtr(string,array)参数 描述
string1 必需。规定要转换的字符串。
from 必需(除非使用数组)。规定要改变的字符。
to 必需(除非使用数组)。规定要改变为的字符。
array 必需(除非使用 from 和 to)。一个数组,其中的键是原始字符,值是目标字符。
说明
如果 from 和 to 的长度不同,则格式化为最短的长度
<?php
$arr = array("Hello" => "Hi", "world" => "earth");
echo strtr("Hello world",$arr); //Hi earth
<=>
echo strtr("Hello world","Hello","Hi");//Hi world
?>
array_flip 去除重复
*  慎用,如果让用户输入的可执行代码在formatstring处理后插如数据库,然后使用此函数会让代码执行; 只适合在用户需要修改内容时还原显示控件中的内容,比如textarea等
  */

 
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);//返回开始和结束日期

 
}
/*//相当于asp.net  datetime.adddays(1)
$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));  echo "Tomorrow is ".date("Y/m/d", $tomorrow);
//输出明天是 2006/07/12
*/

 
 
/*
  * 功能:检测页面是否合法连接过来
  * 如果为非法,就转向到登陆窗口
  */

 
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
;
 
}

}
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值