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

// 弹框跳转

function alert($msg,$url=''){

echo "

echo "alert('$msg');";

if($url){

echo "window.location.href='$url';";

}else{

echo "window.history.go(-1);";

}

echo "";

}

//获取单条数据

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 "

";

print_r($content);

echo "

";

}

/**

*

* 字符截取

* @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封装函数输出,php函数封装相关推荐

  1. 封装成vla函数_不知道怎么封装代码?看看这几种设计模式吧!

    为什么要封装代码? 我们经常听说:"写代码要有良好的封装,要高内聚,低耦合".那怎样才算良好的封装,我们为什么要封装呢?其实封装有这样几个好处: 封装好的代码,内部变量不会污染外部 ...

  2. JS一起学05:Date对象、封闭空间、函数传参和封装、获取非行间样式、字符串操作

    一.Date对象 1. 获取 oDate.getFullYear() 获取年份 oDate.getMonth()+1  获取月份 0-11----->1-12 oDate.getDate() 获 ...

  3. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  4. 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序

    指针 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名 ...

  5. Vue3 Composition API(三)——生命周期钩子、Provide函数 和 Inject函数、封装Hook案例、setup顶层编写方式

    一.生命周期钩子 我们前面说过 setup 可以用来替代 data . methods . computed .watch 等等这些选项,也可以替代 生命周期钩子. 那么setup中如何使用生命周期函 ...

  6. C++函数和类的封装

    本文通过创建一个判断点与圆的坐标位置关系的一段小代码,来练习C++中函数和类的相关知识,巩固函数封装的操作. 目录 1 基础功能实现 1.1 创建点类 1.2 创建圆类 1.3 位置判断函数 1.4 ...

  7. GAT学习:PyG实现GAT(使用PyG封装好的GATConv函数)(三)

    之前我的实现方式相对而言麻烦且准确率不够好,只能达到65%左右的准确率(Cora上),这里介绍直接用PyG封装好的GAT函数实现: import torch import math from torc ...

  8. 内核函数输出怎么看到_谈谈如何学习Linux内核

    学习内核的好处很多,在学习过程中不仅可以夯实大量理论基础,还可以学习到很多编码惯用法,提升学习能力和分析能力. 一.确立高度,明确目标 高度决定视角,视角决定行动 在学习内核过程中最容易犯的错误,也是 ...

  9. 【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )

    文章目录 一.FFMPEG 源码下载 解压 二.交叉编译工具 三.configure 脚本及帮助命令 四.配置 configure 脚本 五.输出目录配置 六.函数库配置 七.程序配置选项 八.组件配 ...

最新文章

  1. ssh 登陆mysql数据库_mysql命令行客户端如何通过ssh服务器连接数据库啊?
  2. Nature综述:微生物的社交网络 - 营养缺陷型如何塑造复杂群落
  3. 获取网页各种宽高的值
  4. 位图排序 大数据_干货分享:大话12种排序算法
  5. 高并发编程-happens-before
  6. AsyncTask的用法
  7. tensorflow学习5----GAN模型初探
  8. 田间小麦病害自动诊断系统(野外复杂环境)
  9. Linux系统安装Oracle 10g
  10. Halcon教程九:把Halcon程序放到C#程序里
  11. 关闭Ubuntu错误报告
  12. 【计算方法】解线性方程组的四种方法
  13. Crowd 和 JIRA、Confluence、Fisheye and Crucible共享账户集成登入
  14. 弹出停止U盘安全删除硬件的命令
  15. Python特定场景数据内型“解压”操作
  16. 读书节最该买的书,我都帮你们挑出来了
  17. excel根据空格把数据分列
  18. Matlab 隐函数方程求解最小二乘法拟合一阶线性拟合二阶拟合传感器实验
  19. 库克退休前的最后一战:不是苹果汽车!
  20. 计算机显示u盘容量只有1m,为什么新买的U盘容量大小与实际显示大小不一样?...

热门文章

  1. asp之发布给IIS
  2. educoder第六章 关联挖掘 实验二:FP-growth
  3. excel删除行 uipath_工作再忙,也要学会这10个最经典的Excel小技巧
  4. 根据一个id查找出数组里面的数据并改掉_Excel最强大的VLOOKUP以及INDEXamp;MATCH查找函数...
  5. 统计学习导论_统计学习导论 | 读书笔记15 | 广义可加模型
  6. Error creating bean with name 解决办法
  7. CentOS7安装了nginx后启动本机访问不到
  8. python 判断字符串是否为数字_Python核心知识系列:数字与字符串类型
  9. pythonweb静态服务器_python实现外部静态服务器,浏览器通过HTTP与之通信2
  10. elf文件格式_Android so(ELF) 文件解析