模块下不间断更新,PHP常用方法,欢迎留言!

一、递归删除指定目录下所有文件及文件夹
/**
* 递归删除指定目录下所有文件及文件夹
* @param unknown $path,删除路径
*/
function deleteFileWay($path)
{
//如果是目录则继续
if(is_dir($path)){
//扫描一个文件夹内的所有文件夹和文件并返回数组
$info = scandir($path);
foreach($info as $k=>$v){
//排除目录中的.和..
if($v != '.' && $v != '..'){
if(is_dir($path.$v)){
//子目录中操作删除文件夹和文件
deleteFileWay($path.$v.'/');
//目录清空后删除空文件夹
@rmdir($path.$v.'/');
}else{
//如果是文件直接删除
@unlink($path.$v);
}
}
}
}
} /**
* [result14 description]
* 查找会员下面所有盟主
* 参数$uid会员id
* 返回
* 'status'=>0,没有下级盟主
* 'status'=>1,'data'=>下级盟主id,数组类型
*/
function result14($uid){
$cancel_user_list=$uid.',';//下级所有盟主列表列表,用于sqlin语句
$crt_level_user=pdo_getall('nets_hjk_members', array('from_uid' => $uid), array('type','memberid','level'));
if (empty($crt_level_user)) {
return array('status'=>0,'hint'=>"没有需要变更的下级1");
}
while (!empty($crt_level_user)) {
//从当前用户中提取memberid,用于下一次取下级用户
$crt_level_user_for_sqlin='';
$crt_level_leader_for_sqlin='';
foreach ($crt_level_user as $value) {
$crt_level_user_for_sqlin .= $value['memberid'].',';
//遍历crt_level_user中所有的行,取出盟主的memberid放在$crt_level_leader_for_sqlin中
if ($value['type'] == 1) {
$crt_level_leader_for_sqlin .= $value['memberid'].',';
}
}
$cancel_user_list .= $crt_level_leader_for_sqlin;
//获取当前层级下级用户
if(!empty($crt_level_user_for_sqlin)){
$crt_level_user_for_sqlin=substr($crt_level_user_for_sqlin,0,strlen($crt_level_user_for_sqlin)-1);
}
$crt_level_user=pdo_fetchall("SELECT ex.memberid,ex.type FROM ".tablename('nets_hjk_members')." AS ex where from_uid in(". $crt_level_user_for_sqlin.") ");
}
$junior_user_list = '';
$cancel_user_list = substr($cancel_user_list,0,strlen($cancel_user_list)-1);
$cancel_user_list_arr = explode(",",$cancel_user_list);
//当下会员下级所有的盟主,数组
$cancel_user_list_arr = array_splice($cancel_user_list_arr,1);
if (empty($cancel_user_list_arr)) {
return array('status'=>0,'hint'=>"没有需要变更的下级2");
}else{
return array('status'=>1,'data'=>$cancel_user_list_arr);
}
}

二、数据库常用操作

//插入一条数据
INSERT INTO ims_stat_rule (rid,hit) VALUES (351,990); //删除一条数据
DELETE FROM ims_nets_hjk_applyfor WHERE member_id = 49483; //修改一条数据
update ims_nets_hjk_members set level = 4 where id = 100248; //查询数据
select * from ims_nets_hjk_members where memberid = 18978; //格式化时间戳
FROM_UNIXTIME(M1.created_at,'%Y-%m-%d %H:%i:%s') AS created_at; //SQL中IF的用法,如果表M1时间戳为0则默认为'/',反之则进行格式化时间戳处理
IF(M1.finish_time = 0,'/',FROM_UNIXTIME(M1.finish_time,'%Y-%m-%d %H:%i:%s')) AS finish_time

三、ThinkPHP5.0常用操作

//查询区间内
$device_string = $db->table('ims_nets_hjk_devices')
->where('device_id',['>=',$k],['<=',$j],'AND')
->where('status',0)
->field('device_id')
->limit(50)
->select(); // 如下为CASE的用法-----------------------------
$level = Db::query("SELECT SUM(1) AS '全部用户',SUM(CASE WHEN type=1 AND level= 0 THEN 1 ELSE 0 END) AS '店主',SUM(CASE WHEN type=1 AND level= 1 THEN 1 ELSE 0 END) AS '高级店主',SUM(CASE WHEN type=1 AND level= 2 THEN 1 ELSE 0 END) AS '特约店主',SUM(CASE WHEN type=0 THEN 1 ELSE 0 END) AS '普通用户',SUM(CASE WHEN is_partner=1 THEN 1 ELSE 0 END) AS '合伙人',SUM(CASE WHEN is_insider=1 THEN 1 ELSE 0 END) AS '内部',SUM(CASE WHEN is_city_agent=1 THEN 1 ELSE 0 END) AS '市级代理' FROM ims_nets_hjk_members");
SELECT SUM(CASE WHEN
pay_status = 1 AND
date_format(from_UNIXTIME(`pay_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') THEN 1 ELSE 0 END
) AS S1,
SUM(CASE WHEN
pay_status = 1 AND
date_format(from_UNIXTIME(`pay_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d') THEN point ELSE 0 END
) AS S2,
SUM(CASE WHEN
pay_status = 1 AND
order_status = 0 THEN 1 ELSE 0 END
) AS S3
FROM ims_integral_order; // 优化一个四表联查,以会员表作为临时表--------------------------
$list = Db::query("
SELECT
M1s.*, M2.avatar AS avatar_is,
M2.avatar AS avatar_is,M2.nickname AS nickname_is,M2.pid AS pid_is,
M3.integral,M3.asset,M3.wallet,
FROM_UNIXTIME(M4.addTime,'%Y-%m-%d %H:%i:%s') AS addTime
FROM
(
SELECT
memberid,pid,avatar,nickname,FROM_UNIXTIME(created_at,'%Y-%m-%d %H:%i:%s') AS created_at,level,type,is_city_agent,is_partner,is_insider,realname,mobile,from_uid
FROM
ims_nets_hjk_members AS M1
WHERE ".$whes."
ORDER BY
created_at DESC
LIMIT ".(($pindex - 1) * $psize).",". $psize."
) AS M1s
LEFT JOIN ims_nets_hjk_members AS M2 ON M1s.from_uid = M2.memberid
LEFT JOIN ims_mc_members AS M3 ON M1s.memberid = M3.uid
LEFT JOIN t_fans_log AS M4 ON M1s.memberid = M4.fans_memberId
"); //TP自加和自减
$res = $this->where('single','gt',0)
    ->update([
        'red_fee'=>['INC',$fee],//自加
        'create_time'=>time(),
        'count'=>['DEC',1],//自减
         ]); //TP大于或者小于
$res = $this->where([
      ['status','=',1],
      ['page_id','>',0]
      ]); //DB操作批量插入
$res = $db->table('ims_nets_hjk_sogo_licence')->insertAll($sogo_licence); //查询指定会员已激活的设备,并且不在ims_nets_hjk_sogo_equipment表里面,EXISTS用法
$list = $db->query("SELECT s_id FROM `ims_nets_hjk_devices`
          WHERE active_member_id = ".$uid."
          AND `status` = 1
          AND NOT EXISTS
            (SELECT s_id FROM ims_nets_hjk_sogo_equipment WHERE s_id = ims_nets_hjk_devices.s_id ) //打印SQL语句
->buildSql();

四、ThinkPHP5.0常用操作

//模拟url传递数组
$url = 'http://niushop.jingjinglego.com/index.php?s=/admin/We7Config/addIndexAd&type=2&adList[0][sort]=456&adList[0][img]=upad/test/1e.jpg&adList[0][outerUrl]=www.bai.com&adList[0][source]=1&adList[1][sort]=456&adList[1][img]=upad/test/1e.jpg&adList[1][outerUrl]=www.bai.com&adList[1][source]=1'; //调用请求类request写法,接受数组
$ids = request->post('ids/a'); //获取参数
use think\Request;
$request = Request::instance();
$method = $request->method();//获取上传方式
$request->param();//获取所有参数,最全
$get = $request->get();//获取get上传的内容
$post = $request->post();//获取post上传的内容
$request->file('file')//获取文件 //错误和正确提示及跳转error/success
$this->error("抱歉你不是最帅的人", __URL__ . "/wap/We7Store/storeManagement"); // 锁定跳转,url重定向
$redirect = __URL(__URL__ . "/wap/login/userlock");
$this->redirect($redirect); 

四、检查字符串是否是URL

//判断是否是url
function is_url($v){
$pattern="#(http|https)://(.*\.)?.*\..*#i";
if(preg_match($pattern,$v)){
return true;
}else{
return false;
}
}

PHP代码篇(三)--常用方法的更多相关文章

  1. phonegap(cordova) 自己定义插件代码篇(三)----支付宝支付工具整合

    建议读者,先阅读官方文档,知晓其支付流程之后再来使用此代码,比方客户须要做什么,服务端须要做什么(非常重要!非常重要! 非常重要!),由于这几个篇幅都是纯代码篇,由于阅读前面的入门篇之后看这些应该毫无 ...

  2. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  3. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  4. 平衡二叉树,AVL树之代码篇

    看完了第一篇博客,相信大家对于平衡二叉树的插入调整以及删除调整已经有了一定的了解,下面,我们开始介绍代码部分. 首先,再次提一下使用的结构定义 typedef char KeyType; //关键字 ...

  5. TODO:一不顺眼就换字体Go之代码篇

    TODO:一不顺眼就换字体Go之代码篇 image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述:新增字体font,进行 ...

  6. 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  7. 【SSRS】入门篇(三) -- 为报表定义数据集

    原文:[SSRS]入门篇(三) -- 为报表定义数据集 通过前两篇文件 [SSRS]入门篇(一) -- 创建SSRS项目 和 [SSRS]入门篇(二) -- 建立数据源 后, 我们建立了一个SSRS项 ...

  8. Netty实现高性能IOT服务器(Groza)之精尽代码篇中

    运行环境: JDK 8+ Maven 3.0+ Redis 技术栈: SpringBoot 2.0+ Redis (Lettuce客户端,RedisTemplate模板方法) Netty 4.1+ M ...

  9. 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)

    好,现在进入高阶代码篇. 目的: 爬取昆明市中学的兴趣点POI. 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894 ...

  10. C# webApi上传图片 代码篇

    十年河东,十年河西,莫欺少年穷 学无止境,精益求精 代码篇,不多说 如下: using System; using System.Collections.Generic; using System.D ...

随机推荐

  1. OC-AVAudioSession的知识小记

    参考文章:https://www.cnblogs.com/junhuawang/p/7920989.html 音频输出作为硬件资源,对于iOS系统来说是唯一的,那么要如何协调和各个App之间对这个稀缺 ...

  2. iptables 从入门到应用

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://powermichael.blog.51cto.com/12450987/1952 ...

  3. liunx用户环境初始化脚本

          liunx用户环境初始化脚本 编写生成脚本基本格式,包括作者,联系方式,版本,时间,描述等 [root@magedu ~]# vim .vimrc set ignorecase set c ...

  4. Centos7安装python3和pip3(一)

    安装相关依赖 1 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev ...

  5. 【Https异常】This request has been blocked; the content must be served over HTTPS

    一.问题出现场景 项目从http升级到https后,jsp页面存在发送http请求的情况下就会出现该异常.因为HTTPS 是 HTTP over Secure Socket Layer,以安全为目标的 ...

  6. iotop使用方法

    iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具.iotop 具有与 top 相似的 UI,其中包括 PID.用户.I/O.进程等相关信息.   安装 yum install iot ...

  7. MySQL的基础架构

    TCP/IP看不下去了,我觉得还是从应用层入手,接下来2个月我将主要学习数据库相关和算法知识,网络我一直不熟,所以看起专业书籍很吃力,可以说是浪费时间,这次数据库学习目标是先将方向纠正一下,然后其中的 ...

  8. AcWing 801. 二进制中1的个数

    网址 https://www.acwing.com/solution/AcWing/content/2066/ 题目描述给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数. 算法1主要 ...

  9. eclipse拉取git项目 Read timed out after 30,000 ms

    点击 eclipse -> Window -> Preferences -> Team ->git   在git选项里有Remote connection timeout ,默 ...

  10. 如何在python中使用Elasticsearch

    什么是 Elasticsearch ​ 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来说 ...