PHP
文章平均质量分 53
IT书架
发现您未知的IT宝藏,尽在IT书架(https://itshujia.com)!
展开
-
PHP+Laravel+RabbitMQ实现异步延迟消息队列(库存归还)
一、前言需求:电商秒杀场景中,如果用户下单10分钟未支付,需要进行库存归还本篇是用PHP+Laravel+RabbitMQ来实现异步延迟消息队列二、场景在电商项目中,当我们下单之后,一般需要 20 分钟之内或者 30 分钟之内付款,否则订单就会进入异常处理逻辑中,被取消,那么进入到异常处理逻辑中,就可以当成是一个延迟队列公司的会议预定系统,在会议预定成功后,会在会议开始前半小时通知所有预定该会议的用户安全工单超过 24 小时未处理,则自动拉企业微信群提醒相关责任人用户下单外卖以后,距离原创 2022-05-09 16:03:00 · 1740 阅读 · 1 评论 -
PHP实现微信退款功能
PHP实现微信退款功能最近在调微信退款接口,发现有许多坑,更大家分享一下① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径)②网页提示curl 52 说明你的证书引入少了,在官方的demo上只有两个证书 apiclient_cert.pem和 apiclient_key.pem 你还需要引入一个证书 rootca.pem,这个证书需要你登录到你的商户平台上下载3.要是网页提示 "HTTP/原创 2022-04-01 15:58:40 · 949 阅读 · 1 评论 -
MacOs M1 芯片分布式搭建 Nginx+PHP+MySQL和多站点域名访问
一、安装Nginx问题:Mac 在安装nginx之前记得把原本的apache2给卸载删除了,要不然后期会出现端口号被占用,或者有时候nginx用不了要停止apache服务:sudo apachectl stop 删除如下apache目录:/etc/apache2 /usr/include/apahce2 /usr/libexec/apache2安装nginxbrew install nginx sudo nginx // 启动nginx服务 默认127.0.0.1:808原创 2022-03-23 16:01:12 · 5718 阅读 · 0 评论 -
PHP+Swoole实现微信小程序客服即时通信聊天功能
实现客服功能原创 2022-03-14 17:33:06 · 15836 阅读 · 0 评论 -
PHP迭代生成器秒级导出百万级数据
一、PHP迭代生成器1.PHP性能优化利器:迭代生成器 yield理解很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。2.迭代生成器的优点直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么迭代生成器有哪些优点,如下:生成器会对PHP应用的性能有非常大的影响PHP代码运行时节省大量的内存比较适合计算大量的数据二、快速生成百万条测试数据这里推荐数据库的蠕虫原创 2021-11-18 09:50:47 · 398 阅读 · 0 评论 -
RabbitMQ 清除全部队列及消息
安装RabbitMQ后可访问:http://{rabbitmq安装IP}:15672使用(默认的是帐号guest,密码guest。此账号只能在安装RabbitMQ的机器上登录,无法远程访问登录。)远程访问登录,可以使用自己创建的帐号,给与对应的管理员权限即可。直接在管理页面删除访问http://{rabbitmq安装IP}:15672,登录。点击queues,这里可以看到你创建的所有的Queue,选中某一个Queue,下方有个Delete Queue删除队列/Purge Message清除消息。原创 2021-11-18 09:13:42 · 2310 阅读 · 0 评论 -
mac 安装 amqp扩展
首先安装rabbitmq-c,后面安装amqp扩展的依赖。brew install rabbitmq-c安装成功如图:查看rabbitmq-c安装目录cd /opt/homebrew/Cellar/rabbitmq-c/0.11.0使用pecl安装pecl install amqp安装过程提示:Set the path to librabbitmq install prefix [autodetect]# 输入rabbitmq-c安装目录位置 (0.11.0)是安装的版本目录/op原创 2021-11-18 09:12:39 · 410 阅读 · 0 评论 -
从零创建发布属于自己的composer包
一、准备工作注册并登录github账户,github.com安装好git软件:注册登录packagist账户:packagist.org/二、创建线上仓库1.打开github,点击右上角加号,选择new repository2.而后,进行相关设置,如下图:这里需要输入项目名称,描述,是否公开,是否初始化readme,git忽略文件,以及开源协议等信息。3.拉取线上仓库到本地完成上面的操作化,会成功后会跳转到仓库页面。然后点击右侧的code按钮,然后再点击复制此仓库的git原创 2021-09-26 14:39:48 · 226 阅读 · 0 评论 -
cURL error 60: SSL certificate problem: self signed certificate in certificate chain
一、问题cURL error 60: SSL certificate problem: self signed certificate in certificate chain - 服务器http302 出现这个一般是自签名证书的问题二、解决方案1.直接使用线上服务器带https的域名方案2.windows本地开发环境解决方案a)下载证书:https://github.com/china-li-shuo/ca-certb)把下载的证书放到自己的php以下路径下:D:\wamp64\bin原创 2021-09-26 10:44:23 · 7120 阅读 · 0 评论 -
一个集成阿里云、腾讯云、七牛云对象存储的SDK
概述一个集成阿里云、腾讯云、七牛云对象存储的SDKAn SDK integrating Alibaba cloud, Tencent cloud and qiniu cloud object storage超级快速使用阿里云OSS或腾讯COS及七牛云Koa获取、放置、删除对象Supper quick use Aliyun OSS or Tencent COS or Qiniu Koa to get、put、delete Object.安装composer require china-li-shu原创 2021-09-10 15:18:51 · 328 阅读 · 0 评论 -
ThinkPHP6.0 实现 图片审核(色情识别)+文本内容审核(敏感词过滤)
应用场景用户评论过滤:对网站用户的评论信息进行检测,审核出涉及色情、暴恐、政治敏感、恶意推广等内容,保证良好的用户体验注册信息筛查:对用户的注册信息进行筛查,避免黑产通过用户名实现违规信息的推广文章内容审核:对UGC文章内容进行多个维度的审核,避免因内容违规导致的APP下架等损失内容审核功能文本色情:对文本中的色情行为描述、色情资源链接、低俗交友、污秽文爱等内容进行识别暴恐违禁:对暴力行为、恐怖描述、赌博、毒品、枪支弹药等违禁内容进行识别政治敏感:对文本中的敏感事件、涉政人物、散布谣言、原创 2021-09-02 15:11:44 · 974 阅读 · 0 评论 -
阿里云加了防盗链,小程序白名单如何填写
一、场景场景一:我的阿里云服务器,做了图片连接的防盗链,需要添加域名白名单图片才可显示出来场景二:我们的使用场景是这样的,DNS解析至阿里云的CND,CDN的回源指向阿里云的OSS二、问题我小程序没加白名单的时候图片显示不出三、解决需要如下操作:1、在CDN上防盗链白名单设置 servicewechat.com2、在OSS上防盗链白名单设置 https://servicewechat.com只有1、2两个配置都对了才能用。...原创 2021-08-03 20:14:32 · 486 阅读 · 1 评论 -
ThinkPHP6+JWT 中间件校验Token时效性
一、涉及到的知识点接口验签安全机制封装到服务层接口调用须使用验签接口验证封装到中间件二、下载ThinkPHP6.0框架如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令:composer create-project topthink/think tp出现Succeed!则安装框架成功三、安装JWT扩展建议使用composer安装 方便 快捷,切到项目目录下运行以下命令composer require firebase/php-jwt出现Succ原创 2021-07-23 20:19:18 · 1900 阅读 · 1 评论 -
PHP递归
//模型公众方法,递归 public function treeLevel(array $data, int $pid = 0, string $html = '--', int $level = 0) { //静态数组不在方法内,所以无法覆盖 static $arr = []; foreach ($data as $val) { if ($val['pid'] == $pid) { .原创 2021-07-21 10:46:36 · 102 阅读 · 0 评论 -
PHP+Swoole实现webScoket即时聊天
一、前端页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>在线聊天室</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/r原创 2021-07-07 08:15:05 · 1073 阅读 · 1 评论 -
Laravel8 使用图形验证码做登录
一、 安装扩展包composer require gregwar/captcha二、定义路由//路由分组Route::group(['prefix'=>'admin','namespace'=>'Admin'],function (){ //登录显示 name给路由起一个别名 Route::get('login','LoginController@index')->name('admin.login'); //登录方法 name给路由起一个别名原创 2021-06-18 22:30:47 · 1097 阅读 · 5 评论 -
Laravel8 分页样式问题
一、问题:分页样式只显示上一页和下一页,中间的页码不显示二、查看升级文档说默认分页样式由bootstrap改为 Tailwind CSS 框架 需要修改代码三、解决方法1、第一种解决方法:直接修改源码改成默认配置为 bootstrapvendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php 116行 124行2、第二种解决方法: 使用文档提供的方式 用到Paginator的地方都定义一下,但是可能修改的地原创 2021-06-17 21:43:55 · 438 阅读 · 1 评论 -
Windows 64位下 wampserver3.2.3.3 安装phpphp7.3.21+redis5.2扩展
一、下载redis3.0 windows版本https://github.com/tporadowski/redis/releaseswindows下 cmd 进入 redis 安装目录 执行redis-server redis.windows.conf 启动服务见到如图则成功二、下载php7.3.2.1 对应的redis 扩展dll 文件https://pecl.php.net/package/redis/5.2.0RC1/windows三、将php_redis.dll文件并复制到ph原创 2021-06-06 21:00:30 · 382 阅读 · 0 评论 -
ThinkPHP5.0+七牛云SDK文件上传
一、问:为什么建议大家使用对象存储对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。我为什么建议大家使用对象存储?我总结了这六点。1、网站数据动静分离,大幅提升网页性能一般情况下,我们都是建议使用主机服务器和对象存储分工合作的方式来存储网站数据。主机服务器主要负责存储网站的动态数据,对象存储则用来存储网站的静态文件。从而实现网站的动静分离,当用户访问一个网站时,分别从主机服务器和对象存储的服务器同步读取数据,可以大幅的提升网页性能。原创 2021-05-30 21:04:27 · 289 阅读 · 0 评论 -
windows设置php环境变量
1、找到要设置的php版本路径,然后进行复制2、添加环境变量(控制面板->高级系统设置->环境变量->最上方的李硕的系统变量Path->新增两条php路径即可)3、打开cmd输入php-v 即可查看添加的php版本信息...原创 2021-05-11 19:25:58 · 1522 阅读 · 0 评论 -
PHPStudy(小皮)V8.1 中使用cmd进入MySQL命令行模式
1、找到phpstudy_pro中的mysql可执行文件所在的位置(安装位置)把这个路径进行复制:D:\phpstudy_pro\Extensions\MySQL5.7.26\bin2、输入命令mysql -u root -p3、然后输入密码(注意这里的root是phpstudy里面root数据库的用户名)成功进入cmd模式是下面的界面:4、未成功进入报错解决方案(如果成功进入咋忽略以下步骤)ERROR 1045 (28000): Access denied for user 'ODB原创 2021-05-11 19:24:53 · 9539 阅读 · 3 评论 -
支付宝H5嵌入APP内部支付
前景:由于苹果支付收取手续费太高,决定采用APP内嵌套H5进行微信和支付宝进行支付。安卓手机可以直接使用APP支付功能(APP支付和H5支付,只有两个参数不同而已,以及返回的参数格式不同,仅此而已)H5支付流程用户添加商品生成订单,选择支付宝支付方式,点击购买按钮,前端发送ajax请求到后端,后端调用支付宝统一下单接口生成预付单。对于H5支付返回的是一个表单的字符串(APP内支付是序列号的字符串),前端接收到直接复制给页面某个div,会自动调起支付宝APP进行支付,如下图:H5统一下单接口原创 2021-03-25 10:20:04 · 1911 阅读 · 0 评论