
php
文章平均质量分 53
lionvc1
BUG就像海绵里的水,只要测总会有的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
IDEA Eval Reset 使用方法
IDEA Eval Reset 插件原创 2023-02-06 16:53:54 · 3597 阅读 · 0 评论 -
如何判断微信付款码和支付宝付款码
微信付款码:用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头文档链接:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=5_1支付宝付款码:由于业务发展需要,支付宝在2017年9月底对支付宝的用户付款码做升级处理。 付款码将由原来的28开头扩充到25-30开头, 长度由原来的16-18位扩充到16-24位 。未来随移动支付产业的发展,用户付款码可能会有所加长,建议开发者做好设计预留工作。文档链接:ht原创 2021-03-29 14:09:34 · 4405 阅读 · 3 评论 -
laravel 队列、事件系统、Eloquent 模型事件、广播系统、任务调度
队列 异步执行1.建立job(app/Jobs/)在controller里面使用dispatch分发任务2.事件 解耦代码1.建立事件(app/Events/)和监听器(app/Listeners/)2.事件的观察者(app/Observers/)可以放入队列Eloquent 模型事件retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored可用观察者统一管理 在原创 2021-03-05 09:11:40 · 540 阅读 · 2 评论 -
laravel6 任务调度
任务调度新建队列任务修改app/Console/kernel.php启动调度器新建队列任务php artisan make:job SendSms<?phpnamespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\Interacts原创 2021-03-04 16:22:43 · 237 阅读 · 6 评论 -
laravel6 基于 Redis 实现广播系统下(私有频道)
启动websocket服务端npm run watchlaravel-echo-server start 私有频道注意事项一定要看注释掉 config/database.php 中 redis.options.prefix'redis' => [ 'client' => env('REDIS_CLIENT', 'phpredis'), 'options' => [ 'cluster' => env('REDIS原创 2021-03-03 16:00:50 · 848 阅读 · 4 评论 -
laravel6 基于 Redis 实现广播系统上(公共频道)
环境:win7redis 3.0.5.4laravle 6node.js v12.16.2“predis/predis”: “^1.1”配置1.在config\app.php文件中取消注释 App\Providers\BroadcastServiceProvider::class,修改.env文件BROADCAST_DRIVER=redis2.安装laravel-echo和laravel-echo-servernpm install --save socket.io-client原创 2021-02-24 16:56:20 · 394 阅读 · 5 评论 -
php支付宝2.0电脑支付异步回调验签失败坑
支付宝返回数据有问题,一个反斜杠:'fund_bill_list' => '[{\\"amount\\":\\"0.01\\",\\"fundChannel\\":\\"ALIPAYACCOUNT\\"}]'正确的应该是'fund_bill_list' => '[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]'解决办法$arr=$_POST;//新增下面代码$arr['fund_bill_list'] = str原创 2021-01-07 17:46:07 · 724 阅读 · 1 评论 -
laravel8+rabbitmq队列
1.Composer 安装 laravel-queue-rabbitmq下图是laravel和rabbitmq版本对应composer require vladimir-yuldashev/laravel-queue-rabbitmq 11.12.在 config/queue.php 配置文件中的 connections 数组中加入以下配置'connections' => [ // ... 'rabbitmq' => [ 'driver'原创 2021-01-03 16:35:09 · 2100 阅读 · 4 评论 -
PHP单例模式
ini_set('display_errors','On');error_reporting(E_ALL);ini_set('display_errors','On');error_reporting(E_ALL);class singe { protected static $instance = null; //方法前加final 方法不能被覆盖 类前加final不能被继承 final public static function getInstance()原创 2020-12-23 08:41:39 · 121 阅读 · 2 评论 -
php对象中self()和static()区别
self(): 返回此方法定义的类的实例static(): 返回调用的类的实例(可以是子类)<?phpclass A { public static function getSelf() { return new self(); } public static function getStatic() { return new static(); }}class B extends A {}echo get_class(原创 2020-12-23 08:21:08 · 259 阅读 · 3 评论 -
php高并发优化
1.防盗链2.减少HTTP请求3.浏览器压缩缓存技术4.页面静态化5.图片服务器6.cdn7.redis缓存8.MySQL优化9.负载均衡原创 2020-12-12 17:18:18 · 176 阅读 · 1 评论 -
php xml和数组转换
1.数组转换为xmlfunction arrayToXml($data, $eIsArray = FALSE){ $xmlWriter = new XMLWriter(); if (!$eIsArray) { $xmlWriter->openMemory(); } foreach ($data as $key => $value) { if (is_array($value)) { $xmlWriter-原创 2020-09-25 17:21:09 · 113 阅读 · 0 评论 -
laravel用队列定时取消订单
1.修改队列默认引擎 .envQUEUE_CONNECTION=redis2.新建订单取消任务类<?phpnamespace App\Jobs;use App\Models\Order;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWit原创 2020-09-02 10:31:29 · 922 阅读 · 0 评论 -
laravel Collection方法详解-持续更新
map方法:返回新集合// 遍历整个集合并将每一个数值传入给定的回调函数:$multiplied = $collection->map(function ($item, $key) { return $item * 2;});each方法:返回原集合// 遍历集合中的项目,并将之传入给定的回调函数:$collection = $collection->each(function ($item, $key) {});...原创 2020-08-07 09:27:31 · 3295 阅读 · 1 评论 -
PHP中preg_match详解
preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : intpattern 要搜索的模式,字符串类型。subject 输入字符串。示例//匹配字符串中汉字$str = 'PHP是1111世界上最好的语22222言44444';$pattern = '/^[^\d]*(\d*)[^\d]*(\d*)[^\d]*\d*$.原创 2020-08-05 16:47:33 · 3847 阅读 · 0 评论 -
laravel+Redis秒杀
原理1.初始化:秒杀商品,将商品以list数据类型存入redis(每个数量为一个元素);2.购买:1)购买用户入队列,如果用户队列长度超过指定的排队长度,则返回排队数过多。;2)如果用户队列长度小于redis中商品长度(50),lpop从队列中取出商品,同时获取一个redis锁。然后生成订单,减去库存。下单完成代码MiaoshaController.php<?phpnamespace App\Http\Controllers;use App\Models\Goods;use原创 2020-06-12 17:22:47 · 963 阅读 · 1 评论 -
laravel-admin模型表单关联关系处理
laravel-admin模型表单的关联关系处理不支持小驼峰写法用商品的规格举例商品模型Goods.phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Goods extends Model{ protected $table = 'goods'; //这里不能用小驼峰goodsSkus,否则关联关系处理会失效 public function skus() {原创 2020-06-12 08:55:22 · 1813 阅读 · 1 评论 -
PHP MD5withRSA、SHA1withRSA、SHA256withRSA算法签名
MD5withRSA签名签名:openssl_sign($data, $signature, $pkeyid,OPENSSL_ALGO_MD5 );验签:openssl_verify($data, $signature, $pkeyid, OPENSSL_ALGO_MD5);代码如下:<?phpclass Md5RSA{ /** * 利用约定数据和私钥生成数字签名 * @param $params 待签数据 * @return String 返回原创 2020-06-06 16:55:05 · 1555 阅读 · 1 评论 -
laravel 批量插入自动过滤数据库没有的字段,实现thinkPHP的allowField
<?phpnamespace App\Services;use Exception;use App\Models\Goods;use Illuminate\Support\Facades\DB;use Illuminate\Support\Facades\Schema;class GoodsServices{ public function insert($params) { $insert = $this->filterFields($params原创 2020-05-28 17:42:28 · 3196 阅读 · 1 评论 -
laravel Eloquent ORM批量更新
批量更新的数据,注意第一个需要是id$data = [ [ 'id' => 1, 'name' => 'test1', 'status' => 1, ], [ 'id' => 2, 'name' => 'test2', 'status' => 1, ], [ 'id'原创 2020-05-28 17:36:09 · 2654 阅读 · 1 评论 -
laravel新增路由文件
新建路由文件在routes/目录下新建路由文件 routes/openApi.php内容如下Route::namespace('OpenApi')->group(function() { Route::get('test', function() { return 'test'; });});修改RouteServiceProvider.phpapp\Providers\RouterServiceProvider.php新增代码 publi.原创 2020-05-28 11:52:34 · 562 阅读 · 0 评论 -
laravel资源路由商品编辑时,用表单验证unique验证商品名称是否重复
laravel优雅的表单验证。当商品编辑时,需要校验当前分类下商品名称是否重复,需要查询当前分类下除了此ID的所有商品名称1.商品的CRUD资源路由Route::resource('goods', 'CodeController', ['parameters' => ['goods' => 'id']]);//parameters的意思是修改路由的参数为ID2.App\Http\Requests\GoodsRequest<?phpnamespace App\Http\Req原创 2020-05-23 10:11:28 · 845 阅读 · 1 评论 -
PHP 可变变量
$user = new user();$itme = 'id';$user->{$itme }$itme = 'name';$user->{$itme }PHP中->{} 含义是:调用user类中的动态属性原创 2020-05-23 09:29:32 · 225 阅读 · 1 评论 -
laravel为$request追加数据
为$request追加数据可以用$request->offsetSet();代码如下$request->offsetSet('type_id', 0);原创 2020-05-19 09:01:41 · 1559 阅读 · 0 评论 -
laravel只读取指定的$request数据
只获取指定$request数据可以用$request->only()或者只排除指定数据$request->except()public function goods(Request $request){ //获取全部数据 $all = $request->all(); //只获取name和type $only = $request->only('name','type'); //获取除了type的所有数据原创 2020-05-19 08:59:03 · 894 阅读 · 0 评论 -
laravel资源路由
资源路由只是系统自动帮你注册了一些资源的restful路由规则Route::resource('goods', 'GoodsController');则会创建如下路由动作URI行为路由名称GET/goodsindexgoods.indexGET/goods/createcreategoods.createPOST/goodsstoregoods.storeGET/goods/{good}showgoods.showGET/go原创 2020-05-19 08:33:56 · 1103 阅读 · 0 评论 -
laravel验证规则验证唯一性的时候,排除修改时的验证
public function rules() { //这里直接读取的是路由(route)提供的id $id = $this->route('id'); return [ //此处注意,name后面一定要加逗号(,)不然他会把name和ID拼接,从而找不到字段报错 'name' => 'required|unique:users,name,'.$id ]; } //错误信原创 2020-05-18 10:11:47 · 1568 阅读 · 0 评论 -
laravel校验两次密码是否相同
使用 ‘confirmed’验证字段为 password ,输入中必须存在与之匹配的 password_confirmation 字段。<?phpnamespace App\Http\Requests;class UserRequest extends FormRequest{ public function rules() { return [ 'password' => ['required', 'max:16', 'm原创 2020-05-18 10:04:23 · 2524 阅读 · 0 评论 -
Laravel Eloquent关联模型查询设置查询条件与指定字段和无限分类
Models<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Cat extends Model{ protected $table = 'cat'; public function child() { return $this->hasMany('App\Models\Cat', 'parent_id', 'id'); }原创 2020-05-14 17:48:52 · 3047 阅读 · 3 评论 -
Laravel6通过jwt(tymon/jwt-auth)实现API用户无感刷新TOKEN
Laravel 6.x 和 JSON Web 令牌(tymon/jwt-auth) - 用户认证1.token是什么2.jwt是什么3、jwt安装&配置3.1 通过composer安装3.2 发布配置3.3、生成加密密钥3.4、更新User模型3.5.修改 auth.php4、控制器4.1、新建控制器1.token是什么token 翻译为令牌,就是鉴别身份的凭据,类似于身份证;token 本质就是一大串字符串,最常用的场景就是接口对接的鉴权。token 通过一次登录验证,得到一个鉴权字符原创 2020-05-12 15:22:08 · 5186 阅读 · 1 评论 -
php接口加密终极解决方案
1.客户端向服务器端发起SSL连接请求;2.服务器把RSA公钥发送给客户端,并且服务器端保存着唯一的RSA私钥;3.客户端用公钥对双方通信的对称AES秘钥进行加密,并发送给服务器端;4.服务器利用自己唯一的RSA私钥对客户端发来的对称AES秘钥进行解密,在此过程中,中间方无法对其解密(即使是客户端也无法解密,因为只有服务器端拥有唯一的RSA私钥),这样保证了对称秘钥在收发过程中的安全,...原创 2019-11-09 08:28:21 · 1194 阅读 · 0 评论 -
PHP 利用 Apache OpenOffice 将word、excel转为pdf
一、开发环境: windows7(64位)+ Apache 2.4.23 + PHP 5.6.28 + mysql 5.7.15二、前提: 安装JDK,并配置好相关变量: ...转载 2019-05-24 08:28:23 · 1032 阅读 · 0 评论 -
简单理解php的socket编程
简单理解php的socket编程 php的socket编程算是比较难以理解的东西吧,不过,我们只要理解socket几个函数之间的关系,以及它们所扮演的角色,那么理解起来应该不是很难了,在笔者看来,socket编程,其实就是建立一个网络服务的客户端和服务端,这和mysql的客户端和服务端是一样的,你只要理解mysql的客户端和服务端是怎么一回...转载 2019-05-28 16:34:39 · 127 阅读 · 0 评论 -
Linux环境PHP5.5以上连接SqlServer2008【全网最经典无错版】
inux版本:64位CentOS 6.4Nginx版本:nginx1.8.0php版本:php5.5.28Sqlserver版本:2008FreeTDS版本:0.95关于Linux环境安装Nginx+PHP参考Linux环境Nginx安装与...转载 2019-06-03 15:56:18 · 200 阅读 · 0 评论 -
全文搜索分析引擎 Elasticsearch
https://www.elastic.co/guide/cn/elasticsearch/php/current/_quickstart.html转载 2019-07-09 14:47:20 · 95 阅读 · 0 评论 -
thinkPHP5.0+thinkCmf5数据库数据导出为Excel表格方法代码
https://blog.youkuaiyun.com/qq_38313548/article/details/89163639转载 2019-08-03 10:53:03 · 370 阅读 · 0 评论 -
PHP生成PDF并转换成图片
https://www.cnblogs.com/walterfong/p/10008596.html转载 2019-07-23 09:57:58 · 779 阅读 · 0 评论 -
PHP实现生成ascii字符图片
网上经常有一些字符做成的图片,比如这样:细想一下,这里面主要运用到了几个知识,有:从图片解析出像素颜色(也就是通常说的RGB值)去色处理像素映射到字符作为世界上最好的语言,用PHP实现有趣功能也是易如反掌。下面讲解一下具体实现。1. 解析图片中的像素颜色解析图片中的像素颜色,我们需要了解图片存储的格式,这里就以BMP图片为例。什么?网上找不到BMP图片?用QQ的截个图,保...转载 2019-09-23 09:33:07 · 188 阅读 · 0 评论 -
php 如何将image图片转化为字符串(GD库操作及imagick两种实现方式)
效果代码:<?php/*** 图片转换为字符图* @param string $imagePath 图片地址* @param int $width x轴方向缩放比例* @param int $height y轴方向缩放比例* @return string 生成的字符串图*/function img2String($imagePath,$width=1,$h...原创 2019-09-23 10:01:42 · 914 阅读 · 0 评论 -
Windows下使用 Hyper-V + Vagrant 搭建Laravel Homestead 环境
Windows下使用 Hyper-V + Vagrant 搭建Laravel Homestead 环境简介Laravel 致力于让整个 PHP 开发体验变的更愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟主机。Laravel Homestead 是一个官方预封装的 Vagrant box ,它为你提供了一个完美的开发环境,你不需要在本地机器安装...原创 2019-10-10 22:13:35 · 1160 阅读 · 1 评论