PHP-常用代码片段

这是一些使用频率比较高的函数 ......  

1 . 产生随机字符串函数

function  random( $length ) {
 
$hash   =  @ # @#;
  $chars   =  @ # ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;
  $max   =   strlen ( $chars -   1 ;
 
mt_srand (( double ) microtime ()  *   1000000 );
 
for ( $i   =   0 $i   <   $length $i ++ ) {
  
$hash   .=   $chars [ mt_rand ( 0 ,   $max )];
 }
 
return   $hash ;
}


2 . 截取一定长度的字符串

注:该函数对GB2312使用有效

function  wordscut( $string ,   $length   , $sss = 0 ) {
 
if ( strlen ( $string >   $length ) {
               
if ( $sss ){
                      
$length = $length   -   3 ;
                      
$addstr = @ #  ...@#;
                }
  
for ( $i   =   0 $i   <   $length $i ++ ) {
   
if ( ord ( $string [ $i ])  >   127 ) {
    
$wordscut   .=   $string [ $i ] . $string [ $i   +   1 ];
    
$i ++ ;
   } 
else  {
    
$wordscut   .=   $string [ $i ];
   }
  }
  
return   $wordscut . $addstr ;

 }
 
return   $string ;
}


3 . 取得客户端IP地址

function  GetIP(){
             
if  ( getenv ( " HTTP_CLIENT_IP " &&   strcasecmp ( getenv ( " HTTP_CLIENT_IP " ) ,   " unknown " ))
                   
$ip   =   getenv ( " HTTP_CLIENT_IP " );
             
else   if  ( getenv ( " HTTP_X_FORWARDED_FOR " &&   strcasecmp ( getenv ( " HTTP_X_FORWARDED_FOR " ) ,   " unknown " ))
                   
$ip   =   getenv ( " HTTP_X_FORWARDED_FOR " );
             
else   if  ( getenv ( " REMOTE_ADDR " &&   strcasecmp ( getenv ( " REMOTE_ADDR " ) ,   " unknown " ))
                   
$ip   =   getenv ( " REMOTE_ADDR " );
             
else   if  ( isset ( $_SERVER [@ # REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER

[@
# REMOTE_ADDR@#], "unknown"))
                    $ip   =   $_SERVER [@ # REMOTE_ADDR@#];
              else
                  
$ip   =   " unknown " ;
             
return ( $ip );
}

4 . 创建相应的文件夹

function  createdir( $dir = @ # @#)
{
        
if  ( ! is_dir ( $dir ))
        {
            
$temp   =   explode (@ # /@#,$dir);
             $cur_dir   =  @ # @#;
             for ( $i = 0 ; $i < count ( $temp ); $i ++ )
            {
                
$cur_dir   .=   $temp [ $i ] . @ # /@#;
                 if  ( ! is_dir ( $cur_dir ))
                {
                @
mkdir ( $cur_dir , 0777 );
                }
            }
        }
}

5 . 判断邮箱地址

function  checkEmail( $inAddress )
{
 
return  ( ereg ( " ^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+ " , $inAddress ));

}

6 . 跳转

function  gotourl( $message = @ # @#,$url=@#@#,$title=@#@#)
{
 
    
$html    = " <html><head> " ;
    
if ( ! empty ( $url ))
     
$html   .= " <meta http-equiv=@#refresh@# content="3;url=@# " . $url . " @#"> " ;
    
$html   .= " <link href=@#../templates/style.css@# type=text/css rel=stylesheet> " ;
    
$html   .= " </head><body><br><br><br><br> " ;
    
$html   .= " <table cellspacing=@#0@# cellpadding=@#0@# border=@#1@# width=@#450@# align=@#center@#> " ;
 
$html   .= " <tr><td bgcolor=@##ffffff@#> " ;
 
$html   .= " <table border=@#1@# cellspacing=@#1@# cellpadding=@#4@# width=@#100%@#> " ;
 
$html   .= " <tr class=@#m_title@#> " ;
 
$html   .= " <td> " . $title . " </td></tr> " ;
 
$html   .= " <tr class=@#line_1@#><td align=@#center@# height=@#60@#> " ;
 
$html   .= " <br> " . $message . " <br><br> " ;
    
if  ( ! empty ( $url ))
     
$html   .= " 系统将在3秒后返回<br>如果您的浏览器不能自动返回,请点击[<a href= " . $url . "  target=_self>这里</a>]进入 " ;
    
else
     
$html   .= " [<a href=@##@# οnclick=@#history.go(-1)@#>返回</a>] " ;
    
$html   .= " </td></tr></table></td></tr></table> " ;
 
$html   .= " </body></html> " ;
 
echo   $html ;
 
exit ;
}

7 . 分页(两个函数配合使用)

function  getpage( $sql , $page_size = 20 )
 {
      
global   $page , $totalpage , $sums ;   // out param
       $page   =   $_GET [ " page " ];
      
// $eachpage = $page_size;
       $pagesql   =   strstr ( $sql , "  from  " );
      
$pagesql   =   " select count(*) as ids  " . $pagesql ;
      
$result   =   mysql_query ( $pagesql );
      
if ( $rs   =   mysql_fetch_array ( $result ))  $sums   =   $rs [ 0 ];
      
$totalpage   =   ceil ( $sums / $page_size );
      
if (( ! $page ) || ( $page < 1 ))  $page = 1 ;
    
$startpos   =  ( $page - 1 ) * $page_size ;
    
$sql   .= "  limit $startpos,$page_size  " ;
    
return   $sql ;
 }

function  showbar( $string = "" )
{     
    
global   $page , $totalpage ;
 
$out = " 共<font color=@#red@#><b> " . $totalpage . " </b></font>页   " ;
    
$linkNum   = 4 ;
    
$start   =  ( $page - round ( $linkNum / 2 )) > 0   ?  ( $page - round ( $linkNum / 2 ))  :   " 1 " ;
    
$end     =  ( $page + round ( $linkNum / 2 )) < $totalpage   ?  ( $page + round ( $linkNum / 2 ))  :   $totalpage ;
    
$prestart = $start - 1 ;
    
$nextend = $end + 1 ;
    
if ( $page <> 1
 
$out   .=   " <a href=@#?page=1&& " . $string . " @#title=第一页>第一页</a>  " ;
    
if ( $start > 1 )
 
$out .= " <a href=@#?page= " . $prestart . " @# title=上一页>..<<</a>  " ;
 
for ( $t = $start ; $t <= $end ; $t ++ )
    {
     
$out   .=  ( $page == $t ?   " <font color=@#red@#><b>[ " . $t . " ]</b></font>  "   :   " <a href=@#?page=$t&& " . $string . " @#>$t</a>  " ;
    }
 
if ( $end < $totalpage )
 
$out .= " <a href=@#?page= " . $nextend . " && " . $string . " @# title=下一页>>>..</a> " ;
    
if ( $page <> $totalpage )
   
$out   .=   "  <a href=@#?page= " . $totalpage . " && " . $string . " @# title=最后页>最后页</a> " ;
   
return   $out ;
}


8 . 获取新插入数据的ID
mysql_insert_id ();
?>




9 . 怎么获得某个月的最后一天
<?
    
$lastday   =   mktime  ( 0 , 0 , 0 , 9 , 0 , 2006 );
    
echo   strftime  ( " 2006年8月最后一天是: %d " ,   $lastday );
    
echo   " <BR> " ;
    
$lastday   =   mktime  ( 0 , 0 , 0 , 10 , 0 , 2006 );
    
echo   strftime  ( " 2006年9月最后一天是: %d " ,   $lastday );
    
echo   " <BR> " ;  
?>



10 . 算当前礼拜的日期函数(从xx日到xx日为当前礼拜)
<? php
    
function  weekdate( $today )
    {    
        
$today_form   =   date ( " Y-m-d " ,   strtotime ( " today " ));
        
switch  ( $today )
        {
            
case   " Sunday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 518400 );
            
$sunday   =   $today_form  ;
            
break ;
            
case   " Monday " :
            
$monday   =   $today_form  ;
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 518400 );
            
break ;
            
case   " Tuesday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 86400 );
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 432000 );
            
break ;
            
case   " Wednesday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 172800 );
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 345600 );
            
break ;
            
case   " Thursday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 259200 );
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 259200 );
            
break ;
            
case   " Friday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 345600 );
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 172800 );
            
break ;
            
case   " Saturday " :
            
$monday   =   date ( " Y-m-d " ,   strtotime ( " today " ) - 432000 );
            
$sunday   =   date ( " Y-m-d " ,   strtotime ( " today " ) + 86400 );
            
break ;
        }
        
return   compact ( ' monday ' , ' sunday ' );
    }
    
    
$a   =   date  ( " l " ,   time ());
    
extract (weekdate( $a ));
    
echo   $monday . " ---------- " . $sunday ;
?>

/* 第二种方法 */
<? php
    
$monday   =   date ( " Y-m-d " , mktime ( 0 , 0 , 0 , date ( ' m ' ) , date ( ' d ' ) - date ( ' w ' ) + 1 , date ( ' Y ' )));
    
$sunday   =   date ( " Y-m-d " , mktime ( 0 , 0 , 0 , date ( ' m ' ) , date ( ' d ' ) + 7 - date ( ' w ' ) , date ( ' Y ' )));
    
echo   $monday . " ---------- " . $sunday ;
?>  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值