灌水区
-
PHP 算出字符串中文个数
算出某个字符串中中文的个数 $str = "中文english"; echo strlen($str); echo "<br>"; echo mb_strlen($str, "utf8"); 上面代码运行结果为 13 9 大家都知道,一个中文所占的字节数为 2,一个字母占 1 所以如果字符串中无中文时,这两个函数所求得出的字符… -
gatewayworker phpsocketio 区别和选择
phpsocket.io优点:最大的好处就是兼容各种浏览器,即使浏览器不支持websocket,也能给浏览器实时推送数据(利用comet)。缺点:默认只能单进程(可以多个实例实现多进程),多进程及分布式部署比较麻烦,并且多进程分布式部署时业务代码需要做兼容。选择:phpsocket.io适合同时在线数不多(可千人在线)或者对浏览器兼容性有要求的应用gatewayWorker优点:最大的好处就是可以… -
Redis分布式锁脚本【参考】
<?php namespace App\Helper; use App\Traits\RedisClient; /** * redis分布式锁 * * Class RedisLock */ class RedisLock { use RedisClient; const RELEASE_SUCCESS = 1; // 释放锁的返回 const EXPIRE_TIME = 10; // 10s… -
thinkphp 前后端分离的图像验证码拓展
thinkphp5.x 前后端分离图像验证码拓展 当前 Thinkphp 版本 v5.1.39 LTS 由于tp5.1的图像验证码功能是基于session的,且不支持拓展成其他存贮方式。 在前后端完全分离的情况下,使用Jwt鉴权,验证码功能直接废了。所以我改装了一下 tp5.1 的验证码功能模块,通过 cache 的方式实现前后端分离的情况下,对验证码进行验证。 项目地址 https://gith… -
PHP+Redis事务如何解决高并发下商品超卖问题
对于一些有一定用户量的电商网站,如果只是单纯的使用关系型数据库(如MySQL、Oracle)来做抢购,对数据库的压力是非常大的,而且如果不使用好数据库的锁机制,还会导致商品、优惠券超卖的问题。 我所在的公司也遇到了同样的问题,问题发生在优惠券被超量抢购上,在问题发生后我们开始想办法解决问题,由于自己使用redis比较多,我准备使用redis来解决这个问题。 利用redis的高性能和事务特性来解决线… -
PHP 精确运算函数bcadd,bcsub,bcmul,bcdiv
php 在使用加减乘除等运算符计算的时候会把未定义类型的操作数转成浮点数然后进行算术运算 有句话说的好,永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数 浮点数运算示例 $a = '49'; $v = '48.98'; echo $a - $v; 正常来讲这里应该返回 0.2 吧,可实… -
CSS屏蔽UC浏览器广告
一段css样式即可屏蔽UC浏览器的广告 -
MongoDB 启动报错
刚搬新家,正想试试 MongoDB 的LBS,宿舍电脑使用热点下载速度感人,正好发现服务器宝塔上面可以一键安装 MongoDB,刚刚装好启动就给我4个警告 Server has startup warnings: 2020-09-11T00:04:19.257+0800 I STORAGE [initandlisten] 2020-09-11T00:04:19.257+0800 I STORAGE… -
时间距离算法
$startdate = $info_x['end_time']; $enddate = date("Y-m-d H:i:s"); $date = floor((strtotime($enddate)-strtotime($startdate))/86400); //天数 $hour = floor((strtotime($enddate)-strtotim… -
微信公众号jssdk上传微信开发者工具无法上传图片
微信公众号通过js-sdk上传图片失败,invalid media_id hint: {"errcode":40007,"errmsg":"invalid media_id hint: [ON83ta01218661]"} 并且在开发者工具中 serverId 一直是 1237378768e7q8e7r8qwesafdasdfasdfax… -
phpstudy mysql无法启动
问题:phpstudy mysql无法启动,卸载安装也无效,切换版本也无效 排查方法: 1、查看日志文件: 检查 MySQL 的错误日志,通常在 D:\phpstudy_pro\Extensions\MySQL5.7.26\data 目录下,文件名通常是 *.err。 根据日志中的错误信息进行相应的调整。 2、检测端口冲突: 使用命令 netstat -ano | findstr :3306 检查… -
RabbitMQ的基本工作原理
Rabbitmq基本原理 MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。 RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统。业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制,在…



















