php函数封装

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

// 弹框跳转
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;
}

时间: 2024-08-01 10:46:29

php函数封装的相关文章

div盒子的缓动函数封装

1.2.  缓动动画 1.2.1.       原理公式 动画公式 leader = leader + step 匀速动画公式 step = 定值 leader = leader + step 缓动动画公式 step = ( target - leader ) / 10 leader = leader + step 缓动动画的好处 他的移动是有尽头的.不像基础匀速运动那样无限移动. 有非常逼真的缓动效果,实现的动画效果更细腻. 如果不清除定时器,物体永远跟着目标leader在移动. @体验缓动动

用工厂函数封装对象

工厂函数是在方法中建立一个Object空对象,然后再对此对象添加属性和方法,然后把Object对象返回 <html> <head> <title>工厂函数封装对象</title> <script type="text/javascript"> // 工厂函数模式封装对象 //特点:返回结果为对象的函数,在用工厂函数创建对象的时候,一定要new function fn(nianling){ var obj=new object(

第5章 用函数封装程序功能

第5章 用函数封装程序功能 5.1 函数就是一个大"箱子" 5.1.1 函数的声明和定义 5.1.2 函数调用机制 5.1.3 函数的声明与函数调用 5.1.4 函数参数的传递 5.1.5 函数的返回值 5.2 内联函数 5.2.1 用体积换速度的内联函数 5.2.2 内联函数的使用规则 5.3 重载函数 5.3.1 重载函数的声明 5.3.2 重载函数的解析 5.4 函数设计的基本规则 5.4.1 函数声明的设计规则 5.4.2 函数体的设计规则 TOP

dataSet==&gt;Ilist&lt;&gt;的函数封装

一般我们用使用ADO.NET查询数据库返回泛型集合?使用SqlDataReader逐行读取数据存入对象 代码 /// <summary> /// 获取UserInfo泛型集合 /// </summary> /// <param name="connStr">数据库连接字符串</param> /// <param name="sqlStr">要查询的T-SQL</param> /// <re

使用函数封装代码

函数是一个命名的独立代码段,它执行特定的任务,并可能给调用它的程序返回一个值. 函数原型--程序后面将出现的函数的模型.函数原型包括函数名称.传递给函数的变量列表 (实 参).函数返回变量的类型.函数原型以分号结尾: 如  long cube (long x); 函数定义的第一行为函数头,它与函数原型相同,只是没有分号.另外虽然在函数原型中,参数变量名是可选的,但在函数头中必须包含.函数头的后面是函数体,其中包含函数将要执行的语句.函数体以做花括号开始以右花括号结束.如果函数返回的类型不是voi

常见的公共函数封装方法(密码强度、手机号验证、邮箱验证、输入金额验证)

//密码复杂度公共函数封装(邮箱,手机号) this.PasswordStrength = function(password) { var rule = Auto517.config.passwordRule.rule; var min = Auto517.config.passwordRule.min; var max = Auto517.config.passwordRule.max; if(rule == 0 && eval('/^[0-9]{' + min + ',' + max

c++ 回调函数封装

std::function<void(int a,int b)> ha; //函数封装  当成参数用callback  std::bind(&fun1,this,std::placeholders::_1,std::placeholders::_2)  //函数回调时使用 方便之处:类型安全.

原生JavaScript实现的图片轮播左右滑动效果函数封装

原生js实现的图片轮播左右滑动效果函数封装 方便以后需要的时候拿出来复用. 适合新手学习使用. 使用方法轮播图的html结构就不多说了.不过有一点:为了实现无缝无限轮播,需要在三张图片的最前面和最后面再额外添加两张图片(见下),原理简单说就是当图片滑动到最后一张时立马跳到第二张,眼睛看上去就像前后无缝一样. 把img_slider.js引入html,然后编辑window.onload = (function () { ··· });中的内容. (获取图片床,按钮,标识等元素.然后调用slideI

XMLHttpRequest函数封装

XMLHttpRequest函数封装: function ajax(Url,sccuessFn,failureFn) { //1.创建XMLHttpRequest对象 var xhr = null; if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); }else { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //2.打开与服务器的链接 xhr = open('get',Url,tru

获取样式的简单的函数封装

var CSS = { getStyle:function(elem,name){//获取样式 if(elem.style[name]){ return elem.style[name]; } else if(elem.currentStyle){ return elem.currentStyle[name]; } else if(document.defaultView && document.defaultView.getComputedStyle){ name = name.repl