PHP
文章平均质量分 64
PHP相关资料及案例
springdk2009
这个作者很懒,什么都没留下…
展开
-
使用curl上传附件
fastAdmin接收并转发到其他接口。原创 2024-05-20 09:33:55 · 31 阅读 · 0 评论 -
猜你喜欢按百分比推荐
要求,每页数据有4部门组成(系统推荐之最新商品10%,系统推荐之最热标签10%,用户偏好标签关联的商品60%,用户最新标签10%),其他数据没有时用《系统推荐之最新商品》补齐。将数据拆成4部分分别查询,最终用《系统推荐之最新商品》补齐分页数据,遇到问题某一个或多个数据刚开始有数据,页数增加后会无数据情况,造成分页乱的问题。建表:按每个用户生成商品排序表,计划任务(实时性差些)或触发更新排序数据(商品多执行时间长)时间:2021-03-08 16:35:16。最终决定用思路2尝试。原创 2024-03-21 17:21:28 · 269 阅读 · 0 评论 -
Redis watch命令——监控事务
当 Redis 使用 exec 命令执行事务的时候,它首先会去比对被 watch 命令所监控的键值对,如果没有发生变化,那么它会执行事务队列中的命令,提交事务;无论事务是否回滚,Redis 都会去取消执行事务前的 watch 命令,这个过程如图 1 所示。,而只是通过比较 watch 监控的键值对去保证数据的一致性,所以 Redis 多个事务完全可以在非阻塞的多线程环境中并发执行,而且 Redis 的机制是不会产生 ABA 问题的,这样就有利于在保证数据一致的基础上,提高高并发系统的数据读/写性能。原创 2024-03-16 17:08:20 · 808 阅读 · 0 评论 -
yii2.0 中数据查询中 or、in、between
时间:2022-09-03 20:48:53。原创 2024-03-16 17:07:08 · 482 阅读 · 0 评论 -
SM国密招商银行对接
前言国密主要有 SM1,SM2,SM3,SM4。密钥长度和分组长度均为 128 位。SM1为对称加密。其加密强度与 AES (高级加密标准,Advanced Encryption Standard) 相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM2为非对称加密,基于 ECC。该算法已公开。由于该算法基于 ECC,故其签名速度与秘钥生成速度都快于 RSA。原创 2024-03-16 17:06:34 · 914 阅读 · 0 评论 -
手写一个composer并上传发布
一个包的简短描述。通常这个最长只有一行。对于需要发布的包(库),这是必须填写的。原创 2024-03-16 17:05:36 · 827 阅读 · 0 评论 -
Yii2程序总执行时间及sql执行时间
线上越来越慢,就得分析具体原因。原创 2024-03-16 17:04:50 · 301 阅读 · 0 评论 -
基于Imagick完美实现图片裁切、生成缩略图、添加水印
需求中需要将图片中添加水印,且是有角度的。GD库好像没有发现很方例的实现方式。时间:2022-02-11 13:31:59。所以引入了Imagick模块。原创 2024-03-16 17:04:10 · 362 阅读 · 0 评论 -
fpdi读取部分版本PDF失败
打开部分版本报此问题:This PDF document probably uses a compression technique which is not supported by the free parser shipped with FPDI. (See https://www.setasign.com/fpdi-pdf-parser for more details)版本兼容问题,没敢直接更新项目的版本。所以直接把git址址中的代码做了变更实现的。时间:2022-02-10 16:40:18。原创 2024-03-16 17:03:01 · 426 阅读 · 0 评论 -
fpdi将PDF生成图片pdf文件
一般网上很多都会提到imagick,但是会忽视ghostscript,其实ghostscript也是必须要的,这里被坑的不行,浪费一天时间,如果不装ghostscript会报‘failed to read the file’ ,看到这个错误一般会想到权限、路径什么的,其实都不是,所以很难排查;开源的TCPDF是基于PHP的一套类库,它能够很好的生成PDF格式的文档。并且支持文件加密,在目前的开源PHP框架、系统、应用中也使用得很广。时间:2022-02-07 10:23:02。原创 2024-03-16 17:01:03 · 807 阅读 · 0 评论 -
oss前端直传
web端postObject之服务端签名后直传。时间:2021-12-11 14:07:18。原创 2024-03-16 16:59:45 · 922 阅读 · 0 评论 -
统计中指定区间按日、周、月之基础数据生成
时间:2021-11-27 16:38:50。原创 2024-03-16 16:58:50 · 320 阅读 · 0 评论 -
利用FFmpeg 获取视频第一贞作为封面图
FFmpeg 常用的命令行参数如下。12345678910-c:指定编码器-c copy:直接复制,不经过重新编码(这样比较快)-c:v:指定视频编码器-c:a:指定音频编码器-i:指定输入文件-an:去除音频流-vn: 去除视频流-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。原创 2024-03-16 16:57:45 · 894 阅读 · 0 评论 -
PHP处理苹果一键登录之服务端的验证
首先阅读官网文档 https://developer.apple.com/documentation/signinwithapplerestapi。kid,为密钥id标识,签名算法采用的是RS256(RSA 256 + SHA 256),kty常量标识使用RSA签名算法,其公钥参数为n和e。使用到的Apple公钥接口:GET https://appleid.apple.com/auth/keys。后端必须要验证 identityToken 的有效性,合法性;时间:2021-09-02 15:06:34。原创 2024-03-16 16:56:28 · 979 阅读 · 0 评论 -
用户充值功能设计
需求:会员充值功能大部分网站都需要,优其是虚拟商品交易中。4. 用户账单表,用于存取用户的余额变动。时间:2021-07-28 09:24:18。1. 创建充值表:用可只能充指定金额。3. 统一订单表,用于回调统一处理。2. 用户充值记录表。原创 2024-03-16 16:55:32 · 389 阅读 · 0 评论 -
PHP处理苹果APP内购后到服务端的二次验证
时间:2021-07-28 09:12:121. 用户在app中点击购买;2. app调用服务端接口生成订单;3. app获取到服务端订单生成成功后弹出支付窗口;4. 用户输入密码支付;5. app接收支付后apple应用商店返回的支付凭证;6. app将支付凭证传回服务器,调用服务器接口验证凭证是否有效;7. app获取服务器端的验证结果,反馈用户支付结果状态。原创 2024-03-16 16:54:44 · 1056 阅读 · 0 评论 -
PHP中使用ElasticSearch
在es中,使用组合条件查询是其作为搜索引擎检索数据的一个强大之处,在前几篇中,简单演示了es的查询语法,但基本的增删改查功能并不能很好的满足复杂的查询场景,比如说我们期望像mysql那样做到拼接复杂的条件进行查询该如何做呢?子句在过滤器上下文中执行,意味着评分被忽略,子句被考虑用于高速缓存。在MySQL里面,光有了数据库还不行,还需要建立表,ES也是一样的,ES中的type对应MySQL里面的表。注意:这个例子我不打算在此详细解释,看不懂没关系,这篇文章主要的目的是基本用法,并没有涉及到ES的精髓地方,原创 2024-03-16 16:53:53 · 771 阅读 · 0 评论 -
高并发抢购、秒杀、抽奖等活动时
当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于是最终都执行了sql2,库存最后变为-1,超售了,要么补库存,要么等用户投诉吧。2.数据库乐观锁,大致的意思是先查询库存,然后立马将库存+1,然后订单生成后,在更新库存前再查询一次库存,看看跟预期的库存数量是否保持一致,不一致就回滚,提示用户库存不足。sql1:查询商品库存 if(库存数量 > 0) { //生成订单... sql2:库存-1 }原创 2024-03-13 14:36:13 · 371 阅读 · 0 评论 -
加密解密类
时间:2020-07-22 10:28:28。原创 2024-03-13 14:34:56 · 308 阅读 · 0 评论 -
在Docker中使用Xdebug
时间:2020-08-13 17:26:21我们经常会使用 PhpStorm 结合 Xdebug 进行代码断点调试,这样能追踪程序执行流程,方便调试代码和发现潜在问题。博主将开发环境迁入 Docker 后,Xdebug 调试遇到了些问题,在这里整理出 Docker 中使用 Xdebug 的方法和注意事项。原创 2024-03-13 14:34:38 · 1010 阅读 · 0 评论 -
PHP7开启opcache打造强悍性能
request请求(nginx,apache,cli等)-->Zend引擎读取.php文件-->扫描其词典和表达式 -->解析文件-->创建要执行的计算机代码(称为Opcode)-->最后执行Opcode--> response 返回。,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快,同样的接口从以前的几百毫秒提升到现在的50ms左右。原创 2024-03-13 14:33:46 · 329 阅读 · 0 评论 -
网站高并发解决方案
时间:2020-08-13 18:13:3。原创 2024-03-13 14:33:31 · 834 阅读 · 0 评论 -
文件加锁处理并发问题
LOCK_NB:如果希望在文件锁定时阻塞进程,那么需要加上该参数。利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。block:设置为true的时候,锁定文件时,会阻止其他进程。flock(file,lock,block)有三个参数。LOCK_EX:独占锁定(排它锁,写锁)时间:2020-09-26 00:11:36。LOCK_SH:共享锁(读锁)file:已经打开的文件。LOCK_UN:解锁。原创 2024-03-06 21:37:54 · 300 阅读 · 0 评论 -
使用phpword生成word文档
时间:2020-12-17 09:10:26使用phpword生成文档有两种方式直接使用代码编写word文档,用代码生成word,但是设置样式,格式,图片非常麻烦,不建议使用。如果客户或产品提供一份word的样式,我们也难以完全复原,调样式很头疼的。读取原有word模板,替换相关变量。个人感觉这种方式能满足绝大部分需求,实现起来也比较简单,所有的样式,格式直接在word模板里设置好,替换变量就可以了,还可以很方便的切换模板。原创 2024-03-06 21:37:37 · 944 阅读 · 0 评论 -
Git 导出某两次提交之间的差异文件
指令所打包的文件和当前所在的分支有关。如本次例子中,当前所在分支为master分支的最新提交,那么打包输出的文件版本就是master分支的最新提交版本;显然,改指令是可以列出两次提交的具体结果,但是我们只需要那些文件发生改动,并不需要如此具体到行的结果。要导出Git仓库中某两次提交之间的文件差异,必须要先知道有哪些文件发生了差异。指令输出的文件路径都是相对于项目根目录的,在非项目根目录下执行。表示上上次提交,所以我们输出当前和上次提交的差异就可以写成这样。中执行,以为不论是在项目目录中的哪个位置,原创 2024-03-01 21:05:41 · 476 阅读 · 0 评论 -
Yii2所有业务都入到一个队列,结果悲催了
项目中的业务都入到一个队列,由于某原因,数据量爆增,导致队列积压几十W,正常业务受影响了。其实Yii2队列可以开N个的。这样某一类或一个使用一个独立的队列互不影响!时间:2021-04-07 15:41:01。原创 2024-03-01 21:03:56 · 313 阅读 · 0 评论 -
基于Redis的SETNX实现分布式锁
如果setnx 返回ok 说明拿到了锁;如果setnx 返回 nil,说明拿锁失败,被其他线程占用。以上set 代替了 setnx + expire 需要分2次执行命令操作的方式,保证了原子性。PX millseconds:设置过期时间,过期时间精确为毫秒。XX:表示key存在时才设置,如果不存在则返回NULL。NX:表示key不存在才设置,如果存在则返回NULL。EX seconds:设置过期时间,过期时间精确为秒。value: 设置的key的value。key:待设置的key。原创 2024-03-01 21:02:54 · 819 阅读 · 0 评论 -
记一次小程序登录流程错误引发的问题
大量红包数据被刷,经过分析数据发现了微信统计的日活用户与后台统计的日活用户相差太多了。大量伪造数据,因为需要微信授权,刚开始还以为有人把加密数据给解密了呢,真是牛人啊。后来感觉不太可能,经过分析代码发现登录流程有问题引起的(接手的锅)。直接把密钥扔给前端了,结果人家直接调接口,大量数据被刷。时间:2021-04-15 14:40:48。一定要认真认真再认真读官方文档。接手前辈传承过来的代码。原创 2024-03-01 21:00:13 · 319 阅读 · 0 评论 -
微信仿真测试环境 之php
为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收。验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申请,审核通过后,才能开通相应的支付权限(如:付款码支付)。否则,请根据审核驳回提示,重新完成验收。注:仿真测试环境中的商户号(父子商户号)需使用真实商户号。原创 2024-02-27 14:19:56 · 817 阅读 · 0 评论 -
PHP中的精确计算bcadd,bcsub,bcmul,bcdiv 及 扩展安装
今天正好要用到bcadd()函数,结果报错,百度下原因是没有安装bcmath扩展。那就安装呗,搜了一下,我是yum安装的php7.2,扩展也可以yum来安装。时间:2020-03-24 17:18:03。原创 2024-02-27 14:19:15 · 663 阅读 · 0 评论 -
php之支付宝转账或发红包到指定账户(提现功能)
转账到支付宝账户是为了满足支付宝商户向其他支付宝账户进行单笔转账的需求,针对具备开发能力的商户,提供通过 API 接口完成单笔转账的功能。商家只需输入另一个正确的支付宝账号,即可将单笔资金从本人的支付宝账户转账至另一个支付宝账户。该产品适用行业较广,可用于商户间的货款结算,转账汇款,商户给个人用户发放佣金等。文档接口里面有非证书的请求 AopClient 如果需要强制性使用证书 使用AopCertClient。点击获取 点击CSR文件 之后 应用私钥和公钥会进行变更。支付宝开发者中心申请 单笔转账到账户。原创 2024-02-27 14:18:38 · 955 阅读 · 0 评论 -
redis有序列表实现排名
同排名只能有一个,不能并列出现此点注意,且php zRange 时还不能指定withscores参数,网上说好像就是有此BUG存在。时间:2020-01-17 10:56:35。原创 2024-02-27 14:17:33 · 329 阅读 · 0 评论 -
百万级数据导出方案(生成器直接输出单个CSV)
通常都是直接填写第一第二个参数就直接查询,但该函数默认的是对全部结果集进行缓存,这会导致数据过多的时候,内存也会溢出。之前写过一篇文章叫PHP百万级数据导出方案(多csv文件压缩),发现很多朋友都很感兴趣,但是当时用的方法比较不方便,可能不太符合很多人的需求。然而,发现更多朋友对如何结合生成器导出数据感兴趣,因此这篇文章,我来填下坑。然后我们可以看一下前辈的对生成器介绍的文章: PHP性能优化利器:生成器 yield理解,来理解一下生成器防止内存溢出的原理。时间:2019-10-30 23:00:40。原创 2024-02-27 14:16:43 · 344 阅读 · 0 评论 -
性能优化利器:生成器 yield理解
时间:2019-10-30 22:58:54如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。原创 2024-02-27 14:15:17 · 891 阅读 · 0 评论 -
Redis 实现秒杀
秒杀想必大家都了解,在短时间内请求访问会激增,同时要保证不会超卖和数据的准确,对于技术方面还是有些考验的。可惜的是,一直没有机会在项目中实现。再看了一些资料后,打算实验下。2976(秒杀失败)+3(请求超时)+30(秒杀到的) = 3000结果正好相符。,上述命令的意思是 300 并发,共请求 3000 次。时间:2019-10-27 23:55:41。最后就是进行测试了,使用 ab 测试,执行。,环境比较简单,请根据实际情况进行修改.第一步设置要秒杀的数据。原创 2024-02-27 14:14:05 · 729 阅读 · 0 评论 -
设计模式-观察者模式
然而事情还没有完,产品又给加了个需求,需要给新登录的用户10块钱红包奖励,这个当然很简单,我又在消息推送后加了代码,完成了新登录用户的红包奖励(钱怎么到账的过程暂且不论),然而事情还没完没了了,产品不断的在加需求了,如非vip用户登录,给他推送10条需要注册VIP才能打开的信息,如根据客户习惯推送10条客户偏好的信息,如vip快到期的客户需要在客户登录后提醒要充值啦。3.具体主题(ArticleSubject)角色:存储相关状态到具体观察者对象,当具体主题的内部状态改变时,给所有登记过的观察者发出通知。原创 2024-02-27 14:12:26 · 757 阅读 · 0 评论 -
巧用array_replace函数实现一个数组对另外一个数组进行排序
时间:2019-10-08 11:16:49现在需要根据keyArr数组给valueArr数组进行排序:123456789$keyArr= ['300''200''100''200''200''ni2'原创 2024-02-27 14:11:34 · 342 阅读 · 0 评论 -
Yaf执行流程
Yaf执行流程。原创 2024-02-27 14:10:25 · 351 阅读 · 0 评论 -
in_array()函数的小坑...
【代码】in_array()函数的小坑...原创 2024-02-27 14:09:51 · 358 阅读 · 0 评论 -
php aop切编程(勾子与行为)
时间:2019-08-07 09:44:53。原创 2024-02-27 14:08:57 · 339 阅读 · 0 评论