在开发的过程中,经常会用到一些代码,每次使用都需要重新编写,在工作的过程中整理总结了几个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);
}
}
先写这些吧,有新的再添加吧。【原文地址】