随笔分类 -  php

摘要:/*** * 批量更新 * @param string $table 表名 * @param array $values 更新字段(二维数组) * @param string $index key值(主键) * @param array $where where条件 [['user_sn', '=' 阅读全文
posted @ 2023-04-28 09:51 大雾哥 阅读(122) 评论(0) 推荐(0) 编辑
摘要:安装 在此我就不再略过TP6的项目创建过程了,大致就是安装composer工具,安装成功以后,再使用composer去创建项目即可。 think-queue 安装 composer require topthink/think-queue 项目中添加驱动配置 我们需要在安装好的config下找到 q 阅读全文
posted @ 2021-12-17 19:54 大雾哥 阅读(1610) 评论(0) 推荐(1) 编辑
摘要:<?php $lua = <<<LUA local sequenceKey = KEYS[1] local time = KEYS[2] local result = redis.call("setnx", sequenceKey, 1) if (result == 1) then redis.ca 阅读全文
posted @ 2021-09-26 19:23 大雾哥 阅读(705) 评论(0) 推荐(0) 编辑
摘要:解决方案 本地消息表 本地消息表的关键在于本地有一张存储消息日志的记录表,需要启动一个定时任务去不停地扫描消息日志记录,确保消息能够被发送。具体流程如下图: 上图流程: 1)事务发起方本地事务执行成功,在本地消息表中记录消息日志。2)启动定时任务,循环扫描本地消息表。3)定时任务扫描到消息则发送消息 阅读全文
posted @ 2021-09-25 10:41 大雾哥 阅读(124) 评论(0) 推荐(0) 编辑
摘要:<?php $encryptData = input('encryptedData','','trim'); //小程序加密数据 $iv = input('iv','','trim'); //小程序加密方法 $sessionKey = $_SESSION['session_key']; //小程序登 阅读全文
posted @ 2021-09-16 13:48 大雾哥 阅读(443) 评论(0) 推荐(0) 编辑
摘要:通过php和redis实现一个小功能排行榜,用的数据类型是有序集合:zrevrange 递增排序,zrange 递减排序 /** * 排行榜 */ public function rank() { // $this->zrem($this->cachekey); $this->redis->del( 阅读全文
posted @ 2021-04-15 01:17 大雾哥 阅读(672) 评论(0) 推荐(0) 编辑
摘要:<?php //初始化 $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017"); // 插入数据 $bulk = new MongoDB\Driver\BulkWrite; $bulk->insert(['x' => 1, 阅读全文
posted @ 2021-03-26 20:16 大雾哥 阅读(408) 评论(0) 推荐(0) 编辑
摘要:思路: 1. 初始化:先将10件商品push到商品列表(seckill_goods:1)。 2. 抢购:利用pop操作的原子性,每成功抢购1件商品就从该列表pop一个数,并将该用户push到订单列表(seckill_order:1)。当商品redis列表pop空了,返回false。 代码: clas 阅读全文
posted @ 2020-12-24 23:01 大雾哥 阅读(378) 评论(0) 推荐(0) 编辑
摘要:策略 假象把中国分成,若干个一平方公里的单元格 1)、用户位置的变更,理解为一个单元格移动到另外一个单元格(或者不移动) 2)、用户查找附近,理解为查找,自己所在方块的的所有人 数据结构 1)、用户基本信息 纬度、经度、GeoHash值(经纬度,仅用于后期距离计算) 2)、单元格 集合(用户1,用户 阅读全文
posted @ 2020-12-14 17:15 大雾哥 阅读(682) 评论(0) 推荐(0) 编辑
摘要:先列下目标sql语句 SELECT * FROM `table` WHERE `id` IN (423603,423605,423606) ORDER BY FIELD(`id`, 423603,423606,423605) where id in (1,2,3) 这个条件按以下代码写即可 $que 阅读全文
posted @ 2020-10-28 19:50 大雾哥 阅读(607) 评论(0) 推荐(0) 编辑
摘要:<?php class SnowFlake { const TWEPOCH = 1288834974657; // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动) const WORKER_ID_BITS = 5; // 机器标识位数 const DATACENTER_ID_BI 阅读全文
posted @ 2020-09-12 13:25 大雾哥 阅读(1282) 评论(0) 推荐(0) 编辑
摘要:PHP并没有能力实现文件下载,php只能输出内容。 PHP可以借助修改HTTP协议,告诉浏览器不用解析内容,应该当做附件下载。 不要解析 header("Content-type: application/octet-stream"):告诉浏览器当前内容为可执行的流式内容,不需要解析 告诉浏览器当做 阅读全文
posted @ 2020-06-24 00:17 大雾哥 阅读(322) 评论(0) 推荐(0) 编辑
摘要:漏洞描述 由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。 漏洞评级 严重 影响版本 ThinkPHP 5.0系列 < 5.0.23ThinkPHP 5.1系列 < 5.1.31 安全版本 ThinkPHP 阅读全文
posted @ 2020-06-23 23:59 大雾哥 阅读(474) 评论(0) 推荐(0) 编辑
摘要:; opcache的开关,关闭时代码不再优化. opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHP opcache.enable_cli=1 ; OPcache的共享内存大小,以兆字节 阅读全文
posted @ 2020-06-23 23:24 大雾哥 阅读(289) 评论(0) 推荐(0) 编辑
摘要:1.什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来 阅读全文
posted @ 2020-06-23 23:13 大雾哥 阅读(222) 评论(0) 推荐(0) 编辑
摘要:php 处理高精度计算函数 PHP 为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述 bcadd — 加法 bccomp — 比较 bcdiv — 相除 bcmod — 求余数 bcmul — 乘法 bcpow — 次方 bcp 阅读全文
posted @ 2020-06-23 22:53 大雾哥 阅读(610) 评论(0) 推荐(0) 编辑
摘要:/** * 批量更新xw_kefu的sonIds * @author jack */ function kefu_update_kefuids() { set_time_limit(0); global $db; $sql = "select id,name,p_id,is_lizhi from x 阅读全文
posted @ 2020-06-23 22:51 大雾哥 阅读(210) 评论(0) 推荐(0) 编辑
摘要:/** * 秒数转时分格式 * @param $time int * @author jack * @throws string * @return string */ function Sec2Time($time) { if (is_numeric($time)) { return (bool) 阅读全文
posted @ 2020-06-23 22:48 大雾哥 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:/** * 获取用户下属ID集合 * @param $uid int * @param $ids string * @author jack * @throws string * @return string */ public function getUnderlingUIds($uid, $id 阅读全文
posted @ 2020-06-23 22:42 大雾哥 阅读(1483) 评论(0) 推荐(0) 编辑
摘要:* 抽象类 * 1.使用关键字: abstract * 2.类中只要有一个方法声明为abstract抽象方法,那么这个类就必须声明为抽象类 * 3.抽象方法只允许有方法声明与参数列表,不允许有方法体; * 4.因为抽象方法的不确定性,所以抽象类禁止实例化,仅允许通过继承来实例化; * 5.继承抽象类 阅读全文
posted @ 2020-06-19 23:23 大雾哥 阅读(209) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示