这是一些自定义封装的函数类,调用起来很方便,以后会有更多的封装函数更新!

// 弹框跳转
function alert($msg,$url=''){
echo "<script>";
echo "alert('$msg');";
if($url){
echo "window.location.href='$url';";
}else{
echo "window.history.go(-1);";
}
echo "</script>";
}

//获取单条数据
function getONE($sql){
$sql = mysql_query($sql);
$list = array();
if($sql && mysql_affected_rows()>0){
$list = mysql_fetch_assoc($sql);
}return $list;
}

//获取多条数据
function getALL($sql){
$sql = mysql_query($sql);
$list = array();
if($sql && mysql_affected_rows()>0){
while($row = mysql_fetch_assoc($sql)){
$list[] = $row;
}
}return $list;
}

/**
* [delete 删除数据]
* @param [string] $table [表名]
* @param [string] $where [条件]
* @return [boolean] [返回结果]
*/
//删除数据SQL语句封装
function delete($table,$where){
//构造删除的SQL语句
$sql = "DELETE FROM `$table` WHERE $where;";
//把SQL语句执行
$res = mysql_query($sql);
//判断是否执行成功
if($res && mysql_affected_rows()>0){
return true;
}else{
return false;
}
}

/**
* [update 更新数据]
* @param [string] $table [表名]
* @param [array] $array [要更新的数据]
* @param [string] $where [条件]
* @return [type] [返回结果]
*/
//更新数据SQL语句封装
function update($table,$array,$where){
$str = '';
foreach($array as $key => $value){
$str .= "`".$key."`='".$value."',";
}
//去除最右边的逗号
$str = rtrim($str,',');
//构造更新的SQL语句
$sql = "UPDATE `$table` SET $str WHERE $where";
// dump($sql);exit;
$res = mysql_query($sql);
//判断是否执行成功
if($res){
return true;
}else{
return false;
}
}

/**
* [insert 插入数据]
* @param [string] $table [表名]
* @param [array] $data [数据]
* @return [bool] [是否成功]
*/
function insert($table,$data){
$tmp = array_keys($data);
$field = '`'.implode('`,`', $tmp).'`';
$value = "'".implode("','",$data)."'";
$sql = "INSERT INTO $table ($field) VALUES ($value)";
// dump($sql);exit;
$res = mysql_query($sql);
if($res && mysql_affected_rows()>0){
return mysql_insert_id();
}else{
return false;
}
}

//pre预排版打印
function dump($content){
echo "<pre>";
print_r($content);
echo "</pre>";
}

/**
*
* 字符截取
* @param string $string
* @param int $start
* @param int $length
* @param string $charset
* @param string $dot
*
* @return string
*/
function str_cut(&$string, $start, $length, $charset = "utf-8", $dot = '...') {
if(function_exists('mb_substr')) {
if(mb_strlen($string, $charset) > $length) {
return mb_substr ($string, $start, $length, $charset) . $dot;
}
return mb_substr ($string, $start, $length, $charset);

}else if(function_exists('iconv_substr')) {
if(iconv_strlen($string, $charset) > $length) {
return iconv_substr($string, $start, $length, $charset) . $dot;
}
return iconv_substr($string, $start, $length, $charset);
}

$charset = strtolower($charset);
switch ($charset) {
case "utf-8" :
preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $string, $ar); if(func_num_args() >= 3) { if (count($ar[0]) > $length) { return join("", array_slice($ar[0], $start, $length)) . $dot; } return join("", array_slice($ar[0], $start, $length)); } else { return join("", array_slice($ar[0], $start)); } break; default: $start = $start * 2; $length = $length * 2; $strlen = strlen($string); for ( $i = 0; $i < $strlen; $i++ ) { if ( $i >= $start && $i < ( $start + $length ) ) { if ( ord(substr($string, $i, 1)) > 129 ) $tmpstr .= substr($string, $i, 2); else $tmpstr .= substr($string, $i, 1); } if ( ord(substr($string, $i, 1)) > 129 ) $i++; } if ( strlen($tmpstr) < $strlen ) $tmpstr .= $dot; return $tmpstr; }}

/**
* [uploads 文件上传函数]
* @param [string] $name [表单域的name名]
* @param [string] $catalog [文件保存的路径]
* @param array $type [允许上传的文件类型]
* @param integer $size [允许上传的文件大小]
* @return [array] [error 1 上传失败 2 上传成功]
*/
function uploads($name,$catalog,$type=array('jpg','jpeg','gif','png'),$size=1048576){
$status = $_FILES[$name]['error'];
if($status>0){
switch($status){
case 1:
$res['msg'] = "文件上传超过最大值2M";
$res['err'] = 1;
return $res;
break;
case 2:
$res['msg'] = "文件上传超过MAX_FILE_SIZE大小";
$res['err'] = 1;
return $res;
break;
case 3:
$res['msg'] = "文件上传失败";
$res['err'] = 1;
return $res;
break;
case 4:
$res['msg'] = '请选择文件';
$res['err'] = 1;
return $res;
break;
default:
break;
}
}
if($_FILES[$name]['size']>$size){
$res['msg'] = '上传文件超出指定大小';
$res['err'] = 1;
return $res;
}
$ext = pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);

if(!in_array($ext,$type)){
$res['msg'] = '请上传指定的文件类型';
$res['err'] = 1;
return $res;
}
//第一种做法
$catalog = rtrim($catalog,'/');
$dir = $catalog;
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
do{
$file = time().mt_rand(1000,9999);

$filename = $file.'.'.$ext;

$newname = $dir.'/'.$filename;

}while(is_file($dir.'/'.$filename));
move_uploaded_file($_FILES[$name]['tmp_name'], $dir.'/'.$filename);
$res['msg'] = '文件上传成功';
$res['err'] = 2;
$res['filename'] = $filename;
$res['name'] = $filename;
return $res;
}

//封装缩略图的函数
function small($file,$widths,$heights,$address){
$filename="$file";
$info = getimagesize($filename);

//获取图片的宽
$width = $info[0];
//获取图片的高
$height = $info[1];

//打开图片
if($info[2]==1){
$parent = imagecreatefromgif($filename);
}else if($info[2]==2){
$parent = imagecreatefromjpeg($filename);
}else if($info[2]==3){
$parent = imagecreatefrompng($filename);
}

$son_width = $widths;
$son_height = $heights;
// 等比例缩放
// $son_height = ceil(($height*$son_width)/$width);

//w/h = s_w/s_h
//新建图像
$son = imagecreatetruecolor($son_width,$son_height);

imagecopyresized($son,$parent,0,0,0,0,$son_width,$son_height,$width,$height);
$path = pathinfo($filename,PATHINFO_EXTENSION);
$time = time();
$pathname = $time.mt_rand(1000,9999).'.'.$path;

$save = $address.$pathname;
if($info[2]==1){ imagegif($son,$save); }else if($info[2]==2){ imagejpeg($son,$save); }else if($info[2]==3){ imagepng($son,$save); } imagedestroy($son); imagedestroy($parent); return $pathname; }

/**
* 获得用户的真实IP地址
*
* @access public
* @return string
*/
function real_ip()
{
static $realip = NULL;

if ($realip !== NULL)
{
return $realip;
}

if (isset($_SERVER))
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

/* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
foreach ($arr AS $ip)
{
$ip = trim($ip);

if ($ip != 'unknown')
{
$realip = $ip;

break;
}
}
}
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
{
$realip = $_SERVER['HTTP_CLIENT_IP'];
}
else
{
if (isset($_SERVER['REMOTE_ADDR']))
{
$realip = $_SERVER['REMOTE_ADDR'];
}
else
{
$realip = '0.0.0.0';
}
}
}
else
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$realip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP'))
{
$realip = getenv('HTTP_CLIENT_IP'); } else { $realip = getenv('REMOTE_ADDR'); } } preg_match("/[\d\.]{7,15}/", $realip, $onlineip); $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; return $realip;}

/**
* [arraySort 无限极分类函数]
* @param [type] $arr [description]
* @param integer $parentid [description]
* @return [type] [description]
*/
function arraySort($arr,$id,$pid,$parentid=0){
$list=array();
foreach($arr as $key => $v){
if($v[$pid]==$parentid){
$tmp = arraySort($arr,$id,$pid,$v[$id]);
if($tmp){
$v['submenu'] = $tmp;
}
$list[]=$v;
}
}
return $list;
}

php函数封装的更多相关文章

  1. c#读写共享内存操作函数封装

    原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...

  2. [妙味JS基础]第九课:定时器管理、函数封装

    知识点总结 函数封装 回调函数 实例:抖动函数 获取当前的位置 通过数组来实现,一正一负,直到恢复成0为止. 当前位置与数组中各值相加

  3. 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  4. XMLHttpRequest函数封装

    XMLHttpRequest函数封装: function ajax(Url,sccuessFn,failureFn) { //1.创建XMLHttpRequest对象 var xhr = null; ...

  5. Appium python自动化测试系列之滑动函数封装实战(八)

    8.1 什么是函数的封装 教科书上函数的封装太官方,我们这里暂且将函数的封装就是为了偷懒把一些有共性的功能或者一些经常用的功能以及模块放在一起,方便我们以后再其他地方调用.这个只是个人的理解所以大家懂 ...

  6. c++ 回调函数封装

    std::function<void(int a,int b)> ha; //函数封装  当成参数用callback  std::bind(&fun1,this,std::plac ...

  7. 定时器中的this和函数封装的简单理解;

    一.定时器中的this: 不管定时器中的函数怎么写,它里面的this都是window: 在函数前面讲this赋值给一个变量,函数内使用这个变量就可以改变this的指向 二.函数封装 函数封装是一种函数 ...

  8. JS中深浅拷贝 函数封装代码

    一.了解 基本数据类型保存在栈内存中,按值访问,引用数据类型保存在堆内存中,按址访问. 二.浅拷贝 浅拷贝只是复制了指向某个对象的指针,而不是复制对象本身,新旧对象其实是同一内存地址的数据,修改其中一 ...

  9. Ajax入门(二)Ajax函数封装

    如果看了的我上一篇博客<Ajax入门(一)从0开始到一次成功的GET请求>的话,肯定知道我们已经完成了一个简单的get请求函数了.如下: 1234567891011121314151617 ...

  10. 写一个函数封装printf用作trace

    转自http://blog.csdn.net/coder_weisong/article/details/10285291     写一个函数封装printf用作trace   方法一:   #inc ...

随机推荐

  1. Python——NumPy库入门

    1.数据的纬度 维度:一组数据的组织形式 1.1 一维数据 一维数据由对等关系的有序或无序数据构成,采用线性方式组织 ,对应列表.数组和集合等概念 列表:数据类型可以不同 ,如 3.1413, 'pi ...

  2. WebView中Java与JavaScript的交互

    原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 开发过程中 WebView 的使用比较广泛,常用来加载网页,比如使用 WebView 加载新闻页面.使用 WebView 打 ...

  3. Java系列之数组

    原文首发于微信公众号:jzman-blog,欢迎关注交流! 本来打算温习一下注解方面的内容作为今天的推送,但是来不及写了,那就一起来看一下数组,数组是用来存放一组具有相同类型数据的数据结构,通过下标来 ...

  4. Ptask公告

    这是一款非常弱鸡的小程序,不喜勿喷 你们好!如在使用中有bug或者有您宝贵的建议请在下方评论区留言或者投递至我的邮箱:Mj_Ymr@outlook.com. 那么我也会不断更新,并在这里贴上各版本的下 ...

  5. C/C++知识总结 三 C/C++数据类型与输入输出

    C/C++数据类型与输入输出 基本数据类型 输入与输出 复合数据类型(将在下几篇博客中总结) C/C++数据类型 数据类型总图 数据类型差别 数据类型不同的意义 1)指明数据的大小,以便正确分配,访问 ...

  6. JS必看面试题

    https://www.jianshu.com/p/f1f39d5b2a2e 1. javascript的typeof返回哪些数据类型. 答案:string,boolean,number,undefi ...

  7. Zabbix报警机制,Zabbix进阶操作,监控案例

                                                                                                        ...

  8. 【php】文件的上传与下载

    一. 生活中常见的地方: a) 例如邮箱.空间.文库.百度云.微爱等地方,都可以看到文件的上传和下载的应用,因此,上传和下载的功能非常重要!二. PHP当中的文件上传和下载 a) 我们需要进行一些设置 ...

  9. 使用mpvue开发小程序如何定义全局变量

    我们创建好mpvue项目之后,找到src/main.js打开在后面添加一行代码 (注意:不能在const app = new Vue(App) 之前添加) Vue.prototype.globalDa ...

  10. (js描述的)数据结构[哈希表1.2](9)

    一. 优秀的哈希函数 1.快速的计算: 需要快速的计算来获得对应的hashCode(霍纳法则来减少乘除次数) 2.均匀的分布: 尽可能将元素映射到不同的位置,让元素在哈希表中均匀分布 二.哈希表的扩容 ...