编程常用的php函数和代码片段

在开发的过程中,经常会用到一些代码,每次使用都需要重新编写,在工作的过程中整理总结了几个php代码片段供大家参考使用,这些代码片段有的可以封装成函数,有的可以直接拿来使用。
1、连接 MySQL 数据库

<?php
 $host="localhost";
 $uname="database username";
 $pass="database password";
 $database = "database name";
 $connection=mysql_connect($host,$uname,$pass) 
 or die("Database Connection Failed");
 $result=mysql_select_db($database)
 or die("database cannot be selected");
?>

2、字符串截取

function words_limit( $str, $num, $append_str='' ){
$words = preg_split( '/[\s]+/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE );
 if( isset($words[$num][1]) ){
   $str = substr( $str, 0, $words[$num][1] ).$append_str;
 }
unset( $words, $num );
return trim( $str );>
}
echo words_limit($yourString, 50,'...'); 
or
echo words_limit($yourString, 50);

3、显示 Youtube 或 Vimeo 视频缩略图

function video_image($url){
   $image_url = parse_url($url);
     if($image_url['host'] == 'www.youtube.com' || 
        $image_url['host'] == 'youtube.com'){
         $array = explode("&", $image_url['query']);
         return "http://img.youtube.com/vi/".substr($array[0], 2)."/0.jpg";
     }else if($image_url['host'] == 'www.youtu.be' || 
              $image_url['host'] == 'youtu.be'){
         $array = explode("/", $image_url['path']);
         return "http://img.youtube.com/vi/".$array[1]."/0.jpg";
     }else if($image_url['host'] == 'www.vimeo.com' || 
         $image_url['host'] == 'vimeo.com'){
         $hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/".
         substr($image_url['path'], 1).".php"));
         return $hash[0]["thumbnail_medium"];
     }
}

4、根据生日计算年龄

function age_from_dob($dob){
$dob = strtotime($dob);
$y = date('Y', $dob);
 if (($m = (date('m') - date('m', $dob))) < 0) {
  $y++;
 } elseif ($m == 0 && date('d') - date('d', $dob) < 0) {
  $y++;
 }
return date('Y') - $y;
}
echo age_from_dob('2005/04/19'); date in yyyy/mm/dd format.

5、Cookie 操作

//设置 Cookie
setcookie("name", 'value', time()+3600*60*30);
//显示 Cookie
if ($_COOKIE["name"]!=""){
$_SESSION['name'] = $_COOKIE["name"];
}

6、生成随机密码

//方法1
echo substr(md5(uniqid()), 0, 8); 
//方法2
function rand_password($length){
  $chars =  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  $chars .= '0123456789' ;
  $chars .= '!@#%^&*()_,./<>?;:[]{}\|=+';
  $str = '';
  $max = strlen($chars) - 1;
  for ($i=0; $i < $length; $i++)
    $str .= $chars[rand(0, $max)];
  return $str;
}
echo rand_password(16);

7、计算日期差异

date_default_timezone_set("Asia/Calcutta");
function dt_differ($start, $end){
  $start = date("G:i:s:m:d:Y", strtotime($start));
  $date1=explode(":", $start);
  $end  = date("G:i:s:m:d:Y", strtotime($end));
  $date2=explode(":", $end);
  $starttime = mktime(date($date1[0]),date($date1[1]),date($date1[2]),
  date($date1[3]),date($date1[4]),date($date1[5]));
  $endtime   = mktime(date($date2[0]),date($date2[1]),date($date2[2]),
  date($date2[3]),date($date2[4]),date($date2[5]));
  $seconds_dif = $starttime-$endtime;
  return $seconds_dif;
}

8、转换秒到日期、时或者分

function seconds2days($mysec) {
    $mysec = (int)$mysec;
    if ( $mysec === 0 ) {
        return '0 second';
    }
    $mins  = 0;
    $hours = 0;
    $days  = 0;
    if ( $mysec >= 60 ) {
        $mins = (int)($mysec / 60);
        $mysec = $mysec % 60;
    }
    if ( $mins >= 60 ) {
        $hours = (int)($mins / 60);
        $mins = $mins % 60;
    }
    if ( $hours >= 24 ) {
        $days = (int)($hours / 24);
        $hours = $hours % 60;
    }
    $output = '';
    if ($days){
        $output .= $days." days ";
    }
    if ($hours) {
        $output .= $hours." hours ";
    }
    if ( $mins ) {
        $output .= $mins." minutes ";
    }
    if ( $mysec ) {
        $output .= $mysec." seconds ";
    }
    $output = rtrim($output);
    return $output;
}

9、文件解压

$zip = zip_open("moooredale.zip");   
if ($zip) {    
  while ($zip_entry = zip_read($zip)) {    
    $fp = fopen(zip_entry_name($zip_entry), "w");    
    if (zip_entry_open($zip, $zip_entry, "r")) {    
    $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));    
    fwrite($fp,"$buf");   
    zip_entry_close($zip_entry);    
    fclose($fp);  
  } 
} 
zip_close($zip); 
}

10、array_multisort对多维数组排序

function sort_array($array, $keyid, $order='asc', $type='number') {
    if(is_array($array)) {
        foreach($array as $val) {
            $order_arr[] = $val[$keyid];
        }
        $order = ($order == 'asc') ? SORT_ASC: SORT_DESC;
        $type  = ($type == 'number') ? SORT_NUMERIC: SORT_STRING;
        array_multisort($order_arr, $order, $type, $array);
    }
}

先写这些吧,有新的再添加吧。【原文地址】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值