- 博客(18)
- 资源 (5)
- 收藏
- 关注
原创 PHP实现SM4加密 加密模式:CBC 填充:PKCS5Padding
【代码】PHP实现SM4加密 加密模式:CBC 填充:PKCS5Padding。
2025-02-13 17:52:27
247
原创 ThinkPHP5 成功部署Workerman Tcp服务或者websocket 服务 运行示例
thinkphp5.0 直接执行:composer require topthink/think-worker=1.0.* 即可成功 thinkPHP 5.1以上版本可以执行composer require topthink/think-worker=2.0.* 用最新版。遇到禁用函数就去对应的PHP里面把禁用函数删除 (此命令可以放到Supervisor的守护进程里面去),并且查看端口是否运行,宝塔里面也要放行对应的端口 2346。五、在服务端 向客户端主动发送消息。
2023-12-22 15:05:29
3008
原创 什么是闭包,为什么要用闭包?
1)什么是闭包函数执行后返回结果是一个内部函数,并被外部变量所引用,如果内部函数持有被执行函数作用域的变量,即形成了闭包。可以在内部函数访问到外部函数作用域。使用闭包,一可以读取函数中的变量,二可以将函数中的变量存储在内存中,保护变量不被污染。而正因闭包会把函数中的变量值存储在内存中,会对内存有消耗,所以不能滥用闭包,否则会影响网页性能,造成内存泄漏。当不需要使用闭包时,要及时释放内存,可将内层函数对象的变量赋值为null。2)闭包原理函数执行分成两个阶段(预编译阶段和执行阶段)。在预编译阶
2022-02-25 16:48:14
2022
原创 多种方式实现斐波那契数列
求斐波那契数列第n项的值1.数学上是以递归的方法来定义F(0) = 0;F(1) = 1;F(n) = F(n - 1) + F(n - 2);2.公式版:递归function fib(n) { if(n < 0) throw new Error('输入的数字不能小于0'); if (n < 2) { return n; } return fib(n - 1) + fib(n - 2);}正常递归版本是一个既简单又直接的逻辑,但是这个版本有个问题就是存
2022-02-25 16:22:22
365
原创 异步请求 非阻塞请求
//返回数据耗时过长 可采用此方法 进行异步请求if(!function_exists("async_equest")){ /** *异步请求 非阻塞请求 * @param string $url 请求地址 */ function async_equest($url) { $host = parse_url($url,PHP_URL_HOST); $port = parse_url($url,PHP_URL_PORT);
2022-02-23 18:07:00
176
原创 极光一键登录PHP方法
注意事项:1、 loginToken是sdk调用login()方法返回的logintoken,不是是时候方法返回的token2、解密手机号码用的是【RSA加密私钥】,多次尝试不行的话,立刻去重置极光的公钥。重置公钥不需要审核,一下就好了提示:重置方法a、生成密钥对b、公钥去掉换行复制过来就可以了c、 私钥不用去换行php代码:/** * @title : 极光一键登录API * @time : 2021年12月3日/下午4:06:58 */function jpushlogin(
2022-02-23 18:00:16
1028
原创 php上传base64类型图片
//php上传base64类型图片public function multi_imgupload() { $jsdata = html_entity_decode($_POST["jsdata"]); $jsdatass = json_decode($jsdata, true); $data=array(); $msg=""; $code="0"; if($jsdatass) {
2021-11-23 13:20:13
1096
原创 递归向上父类 向下查询子集
/** *向下递归查询包含的子集数组 *@param $parent_id 父id数组 *@param */ public function get_childs( $parent_id = array(), $level = 0 ){ $id_arr = array(); $id_arr= $thisModel->where('pid','in',$parent_id)->column('id'); //限制3级 .
2021-03-05 17:09:52
217
原创 fastadmin 表格根据某个字段控制操作列显示不同的button按钮
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, buttons: [ { name: 'qichacha', title: __('退款'), classname: 'btn btn-xs btn-
2021-01-20 17:53:33
1694
1
原创 fastadmin 支付插件退款操作
//1 首先要安装fastadmin的支付插件 退款需配置证书 此方法使用后不能更新支付插件 升级后方法会被覆盖掉//2 在addons\epay\library\Service 支付的同文件下放此方法 基本和支付参数参数差不多 /** * 提交退款订单 * @param array|float $amount 订单金额 * @param array|float $refund_money 退款金额 * @param string $o..
2021-01-20 17:35:42
2337
2
原创 thinkphp5次数限制 用于限制一天内有N次机会,或X秒内有N次机会
** 用途: 密码输入错误N次后锁住 每天免费抽(红包)奖N此 每小时最多评论N条,每小时最多发帖N条 复杂接口频繁调用限制(没分钟最多调用N次)**/** * 次数限制 用于限制一天内有N次机会,或X秒内有N次机会 优化后使用加法,逻辑更加通畅 * @param $unique_id 唯一标识(用户ID或手机号) * @param $numberoftimes 最大次数N * @param $timespant 时间间隔(字符串oneday一天或者
2021-01-20 17:29:36
885
原创 mysql一对多查询最新一条数据
** 单表循环 嵌套连表 group_concent **一、单表循环,代码最简单,最好理解,性能最低$data = db("user") -> alias('u') ->join("user_images i","u.id=i.user_id","left") ->field("max(i.id) as id,u.id as user_id,u.group_id,u.mobile,u.nickname,u.avatar,u.level,u.
2021-01-20 17:21:43
2869
原创 AliOSS删除附件
/** * 附件删除后 前端上传图片后点击删除,后端真实删除带有图片视频的文章时调用 *@ param string $attachment 图片地址 可以是完整地址也可以是相对地址 */public function alossDelete(string $attachment){ $config = get_addon_config("alioss"); if (isset($config['syncdelete'])) { $endpoint = "http://"
2021-01-20 17:13:39
212
原创 fastadmin使用技巧分享 日期变更事件
1、列表使用日期时间选择插件,而不是使用默认的时间段选择//js中修改为{field: 'overtimetime', title: __('Overtimetime'),operate:"datetime",addclass:'datetimepicker',extend:"data-date-format='YYYY-MM-DD' autocomplete=off",formatter: Table.api.formatter.datetime,datetimeFormat:'YYYY-MM-DD'
2021-01-20 17:11:38
2205
原创 php中文转拼音,中文转首字母
//方法一、使用fastadmin中已有类<?phpnamespace fast;/** * 中文转拼音类 */class Pinyin{ protected static $keys = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha|chai|chan|chang|chao|che|chen|ch
2021-01-20 17:07:55
1034
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人