自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于MySQL数据库,你需要知道这些

数据库相关操作建立数据库CREATE DATABASE 数据库名 CHARSET utf8;创建数据库时,判断不存在,再创建:CREATE DATABASE IF NOT EXISTS 数据库名设定编码格式可以省略,会使用默认编码格式查看所有数据库SHOW DATABASES;查看数据库的建立方式,查看建立数据库的相关信息SHOW CREATE DATABASE...

2020-06-16 14:21:18 3268 13

原创 记一次线上OOM事故

linux内核有个机制叫OOM killer(Out-Of-Memory killer),当系统需要申请内存却申请不到时,OOM killer会检查当前进程中占用内存最大者,将其杀掉,腾出内存保障系统正常运行。一般而言,一个应用的内存逐渐增加,肯定是不正常的,这个时候可认为该应用存在内存泄漏,当系统内存被占用到一定的时候,将会触发OOM,此时系统将会找一个最合适的进程杀掉,以释放内存。6.设置mysql 禁用oom机制,将mysql评分降为最低,oom时候 只会杀掉评分最高的进程。

2023-08-19 11:19:33 1083

原创 laravel 读写分离&跨库查询(链接双库)

随着项目用户量、访问量的增长,对数据库进行读写分离可以有效的提升应用整体性能(目前维护的项目用户量8000W左右,每日活跃用户在500W左右,当然不只是使用读写分离来优化的,不过读写分离的优化也是比较关键的)...

2022-08-05 17:19:14 972 1

原创 laravel 事件监听

Laravel 的事件提供了一个简单的观察者实现,允许你在应用中订阅和监听各种发生的事件。事件类通常放在 app/Events 目录下,而这些事件类的监听器则放在 app/Listeners 目录下

2022-08-05 16:57:52 995

原创 laravel查询作用域

比如此项目多数表有共同字段,如店铺id,这时可以再baseModel里边定义一个店铺id的查询作用域,其他开发人员可以直接使用作用域,就不需要再使用where进行指定字段查询了。定义查询作用域有利于定位追踪代码,比如项目逻辑比较大比较复杂,使用此model的地方会有很多,而且项目更新迭代速度比较快,使用作用域有利于代码的复用简洁,多人开发有利于定位。......

2022-08-05 16:50:32 174

转载 laravel 服务容器、服务提供器、契约实例示例

laravel服务容器示例

2022-03-03 15:06:03 310 1

原创 laravel消息队列如何使用

业务场景:项目里边有很多视频资源需要上传到抖音资源库,通过队列一条一条上传。(1)创建任务【生成任务类】在你的应用程序中,队列的任务类都默认放在 app/Jobs 目录下。如果这个目录不存在,那当你运行 make:job Artisan 命令时目录就会被自动创建。你可以用以下的 Artisan 命令来生成一个新的队列任务php artisan make:job DyUploadResource任务类结构任务类的结构很简单,一般来说只会包含一个让队列用来调用此任务的 handle 方法。<

2022-03-03 14:40:31 1084

原创 laravel存在修改,不存在新增数据(支持批量操作)

场景:两张表,1会员卡主表,2,会员卡商品表,修改会员卡主表如果商品新增或者修改了,需要更新或者新增数据:使用:会员卡主表模型多对多关联副表主表model: //数据表名称 protected $table = 'saas_member_card'; /** * 指示是否自动维护时间戳 * * @var bool */ public $timestamps = false; /** * 多对多 批量修改新

2021-11-10 14:15:20 1584

转载 解决mac下的Sourcetree每次拉取提交都需要输入密码

解决mac下的Sourcetree每次拉取提交都需要输入密码最近重装了一次mac,并且重做了一下开发环境,结果以前的sourceTree项目的GIT密码始终保存不到Mac的钥匙串中,明明在钥匙串中是存在的.但是在使用sourceTree pull/push代码的时候还是需要再输入密码,很是繁琐.于是,网上搜索了一下,说的在https模式下,Mac需要使用osxkeychain凭据助手,并在Git中设置使用. 并且如果已经安装了 brew 的应该会自带了 osxkeychain .但是奇怪的是,我安装了b

2021-08-16 15:24:49 1008

原创 抖音内容安全检测接口

检测一段文本是否包含违法违规内容官方文档地址:官方文档直接上代码流程:控制器代码: $zijie = new Zijie(); //检测回复内容 是否合规 $content = $zijie->contentTesting($content); if ($content == false) { return $this->error('评论内容包含敏感信息,请修改',[],401);

2021-07-16 11:57:27 1214

原创 thinkphp5模板赋值数组在js中如何使用

记录一下:需要在赋值的时候转为json形式$this->assign('class_list',json_encode($class_list));在js中直接使用就可以了$.each({$class_list},function(index,value){ console.log(value) });

2021-02-07 15:20:05 1229

原创 前端实现点击word、pdf、excel在页面上显示而不是下载

记录一下项目中需要点击pdf、word等文件在网页上显示而不是下载解决方案。目前免费纯前端方式实现在线预览word、excel、ppt最优选择微软在线预览,但不可编辑文档地址直接可以使用 /** * @description [viewFile 查看文件] * @author chenlong * @param {String} url [文件地址] * @returns {Null} [没有返回] */ function reeFile

2020-12-19 18:03:15 3233 9

原创 layui数据表格图片加载不全问题解决

使用layui数据表格的时候发现渲染出来的图片不完整:渲染出来是这样婶的:解决方法可以使用done回调设置样式: cols: [[ //表头 {field: 'goods_title', title: '商品标题', align: 'center'}, {field: 'goods_thumb', title: '商品图片', align: 'center',templet:'<div><img src="{{d.goods_thumb}}" alt="

2020-12-03 10:55:15 911

原创 click点击事件触发多次ajax请求解决方案

在项目中遇到点击时间触发了多次ajax请求,解决方案是需要加上unbind(‘click’)unbind()为了清除这个dom之前绑定的事件。$(document).on('click','#zd',function () {// 加上unbind('click')解决多次触发ajax请求$(document).unbind('click').on('click','#zd',function () {...

2020-11-27 15:41:41 1150

原创 layer.alert弹框弹两下解决方案

在使用layer.alert 弹框时出现重复弹出bug可以设置id参数,设置该值后,不管是什么类型的层,都只允许同时弹出一个。一般用于页面层和 iframe 层模式layer.alert('是否发送短信通知给学员',{ icon: 6, skin: 'layer-ext-moon', id: 'LAY_layuipro',//设定一个id,防止重复弹出 btn: ['发送','取消'],}...

2020-11-21 17:17:42 1043 1

原创 nginx配置ssl证书实现https访问

首先我们需要把下载的证书上传至linux服务器上边;然后修改nginx.conf配置文件:server { listen 80; server_name www.lscmlr.top; rewrite ^(.*)$ https://$host$1 permanent;#把http的域名请求转成https} server { listen 443 ssl; server_name www.lscm

2020-07-22 11:57:48 279

原创 Nginx实现图片的防盗链

为了阻止盗链的情况出现,可以使用 ngx_http_referer_module 模块。此模块是Nginx的内置模块,不需要重新编译。防盗链示例如下: location ~* \.(jpg|png|gif|webp)$ { valid_referers none blocked server_names *.test1.com ~\.baidu\. ~\.google\.; if ($invalid_refere

2020-06-24 15:45:07 180

原创 Nginx缓存配置实战

缓存配置说明先来了解一下proxy_cache缓存系统的基本配置,如下所示;upstream test_servers { server 127.0.0.1:81 max_fails=5 fail_timeout=10s weight=10; server 127.0.0.1:82 max_fails=5 fail_timeout=10s weight=10; server 127.0.0.1:83 max_fails=5 fail_timeout=10s weight=10;}# 设置缓存空

2020-06-23 16:32:25 325

原创 CDN如何使用nginx负载均衡实现回源请求

应用场景:A服务器作为CDN服务器,B服务器代表客户服务器。实现在A服务器上边访问B服务器上边的资源。具体实现逻辑如下:A:CDN服务器上解析一个泛域名如:(*.ceshi.com)用于用户域名解析cname使用。B:客户服务器域名解析A服务器生成的cname如:(d5f78q.ceshi.com)上实践:准备A服务器作为CDN服务器,添加一个A记录,域名使用泛域名*.ceshi.com 记录值绑定A服务器的ip。B客户服务器拿到A服务器给生成的cname到自己购买域名的厂商上边解析cname.

2020-06-16 11:02:59 1532

原创 Nginx如何实现301跳转实例

第一种:如果域名不是www.aa.com就统一转到http://www.aa.comserver{ listen 80; server_name www.aa.com www.bb.com ; rewrite ^/(.*)$ http://www.aa.com/$1 permanent; if ($host != 'www.aa.com') { rewrite ^/(.*)$ http://www.aa.com/$1 permanent; } }.

2020-06-05 17:52:29 984

原创 Nginx $request_uri和$uri详解

$uringinx中的$uri记录的是执行一系列内部重定向操作后最终传递到后端服务器的URL包含请求的文件名和路径,不包含包含“?”或“#”等参数。完整URL链接:http://www.alipay.com/alipay/index.html$uri:/alipay/index.html$request_uri$request_uri记录的是当前请求的原始URL(包含参数),如果没有执行内部重定向操作,request_uri去掉参数后的值和uri的值是一样的。在线上环境中排查问题是,如果在后

2020-05-29 14:09:07 18400 2

原创 完美解决thinkphp5:致命错误: Class “SmsApi\SmsSend” not found

出现致命错误: Class ‘’ not found错误的原因其实就是我们的命名空间错误的原因。以个人案例来讲:在extend扩展里边新增了一个短信接口的sdk但是没有修改其命名空间。在调取的时候报错。解决方案如下:1.目录结构:2.SmsSend.php里边加上命名空间3.在调取实例时:根据命名空间引入相应的类。...

2020-05-28 17:56:21 3737

原创 PHP去除字符串中所有空格(包括制表符等)

使用preg_replace将删除所有空白(包括制表符等)$string = ' user na me '$string = preg_replace('/\s+/', '', $string);echo $string; // username

2020-05-18 15:26:02 718

原创 configure: error: Cannot find php-config. Please use --with-php-config=PATH解决方案

configure: error: Cannot find php-config. Please use --with-php-config=PATH出现这个错误说明执行 ./configure 时–with-php-config 没有找到这个路径。找到PHP安装目录下的php-config把路径填写在后面即可:./configure --with-php-config=/www/server/php/72/bin/php-config...

2020-05-09 14:42:55 1592

原创 获取带参数的微信小程序二维码-以及修改二维码LOGO源码分享

具体使用到的方法,建议先看代码再从目录中找相应的方法获取二维码方法:Applet()类:http请求方法:剪切上传的logo图片为圆形在二维码中间区域镶嵌图片:逻辑分析:1.首先准备小程序的APPID和SECRET,可在微信公众号中获取。以及准备好想要带进二维码里边的参数2.logo上传:接受到上传的logo图片,先把图片画成圆形,然后获取到二维码后,把logo图片镶嵌到二维码上。具体看代...

2020-03-13 11:23:36 1419

转载 最全Git 常用命令

一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]二、配置# 显示当前的Git配置$ git config --list# 编辑Git配置文件$ git config -e [--global...

2020-01-20 16:01:21 105

原创 完美解决linux 启动php 报错:ERROR: [pool www] cannot get uid for user 'nginx'

前言:当我再linux上安装好php以后,带着急切的心情去启动php的时候,然后给我报了这个错:[root@localhost php]# ./sbin/php-fpm [18-Jan-2020 21:29:10] ERROR: [pool www] cannot get uid for user 'nginx'[18-Jan-2020 21:29:10] ERROR: FPM initia...

2020-01-18 22:07:29 9199

原创 最新Windows下Go语言开发环境搭建+GoLand配置

一、下载Go语言开发包大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示。这里我们下载的是 64 位的开发包,如果电脑是 32 位系统的话,则需要下载 32 位的开发包,在上图所示页面中向下滚动即可找到 32 位开发包的下载地址,如下图所示。注意:下载 Windows 版本的Go语言开发包时尽量选择...

2020-01-12 14:22:49 4163 3

原创 PhpStrom代码格式化设置

代码格式化快捷键: CTRL+ALT+L 变量按照等号 = 对齐数组键值对按 => 对齐格式化代码设置:点击File/Settings进入设置页面:设置Code Style 实现数组内键值对对齐勾选:Editor/Code Style/PHP/Wrapping and Braces / Align key-value pairs勾选前:勾选后设置Code Style ...

2019-12-30 16:04:31 664

原创 tp5 使用post接收数组数据时报variable type error: array错误的解决方法

使用post向后台传输数组数据的时候出现variable type error: array 报错这是因为post提交数据不能提交数组和对象解决方法:再接收数据的时候在参数后边加一个 /a 就可以了$arrid = input('arrid/a')...

2019-12-22 14:42:38 802

原创 PHP封装一个文件上传类(支持单文件多文件上传)

class Upload { //添加一个智能操作: 可以自动判断当前是多文件还是单文件, 来自动选择正确的方法进行处理 public static function save($dir) { if (!file_exists($dir)) { // a/b/c 中间目录不存在,会自动创建! mkdir($dir, ...

2019-12-22 09:51:42 352

原创 正则匹配邮箱

//邮箱验证:/**目标满足的验证逻辑:@之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.)@和最后一个.之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着@最后一个.之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节`不满足校验逻辑:441030517@QQ…com119...

2019-12-22 09:49:27 1146

原创 正则匹配手机号

/** * 正则:手机号(精确) * 移动:134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198 *联通:130、131、132、145、155、156、175、176、185、186、166 * 电信:133、 173、177、180、181、189、199 * 虚拟运营商:170...

2019-12-22 09:48:02 483

原创 php单例模式详解

单例模式: 可以阻止用户多次实例化操作, 只能实例化一次!也叫做单一实例不允许用户自己实例化: 保护构造方法 new提供一个静态方法, 可以生成单一实例不允许用户 clone操作. 保护__clone方法即可静态属性, 用于保存单一实例单例模式3私1公原则:私有的 构造私有的 clone私有的 静态属性公开的 静态方法下面以数据库类为例:class DB{ ...

2019-12-21 10:00:41 165

原创 PHP使用递归和非递归方式实现创建多级文件夹

项目需求:要求写一个函数创建 AA/BB/CC/DD 文件夹; 代码实现如下:function makeDir($dir) { // 先判断上级目录是否存在,如果不存在,就创建上一级目录 $prev = dirname($dir); if (!file_exists($prev)) { // 创建上一级目录 makeDir($prev); } // 上一级目录创建成功了,...

2019-12-18 10:21:30 190

原创 Thinkphp5清除runtime下的cache缓存,temp缓存,log缓存

主要使用的php函数有:array_map ( callback , array1 ,array… )array_map --为数组的每个元素应用回掉函数参数1:回掉函数,应用到每个数组里的每个元素参数2:数组,便利运行参数1设置的函数返回数组,包含回掉函数处理之后 array1 的所有元素。glob(pattern,flags)glob — 寻找与模式匹配的文件路径参数...

2019-11-16 16:05:43 2248

原创 ThinkPHP 5.0 模型关联详解

相信很多小伙伴在刚开始学习thinkphp5.0的时候看不太懂模型关联里边的参数什么意思,下面就详细介绍一下:一对一关联:hasOne(‘关联模型名’,‘外键名’,‘主键名’,[‘模型别名定义’],‘join类型’);可以看到一对一关联 hasOne里有很多参数,但最重要的就是前三个参数。第一个参数 ‘关联模型名’ ,tp5手册是这样说的:‘一个用户都有一个个人资料’。详细点说就是,你...

2019-10-23 15:48:00 890

原创 实战剖析:app扫码登陆实现原理(app+网页端详细逻辑)附源码

记录一下最近在做的一个app扫码登陆的功能。文章最底下附app以及网页端具体逻辑思维图具体思路如下:1.后台生成一个唯一值,附加到二维码上,返回给前端页面,这个唯一值保存到数据库里一份,用来后续的比对。(生成二维码的方法有很多种,网上很多这里就不过多的介绍了,后边有代码)。2.前端AJAX轮询请求二维码的状态,判断是否已扫、确认登陆、取消登陆、超时等信息。3.APP扫码,用户使用APP...

2019-10-09 14:19:05 4478

原创 php文件锁

浅谈近期对PHP的 flock()文件锁函数的理解组塞模式:如果其他进程已经加锁文件,那么当前进程会一直等其他进程解锁文件后继续执行。<?php$fp = fopen("/lock.txt", "r+");if (flock($fp, LOCK_EX)) { // 进行排它型锁定 fwrite($fp, "这里写点东西\n"); flock($fp, LOC...

2019-08-24 13:53:18 149

原创 ThinkPHP5多语言切换项目实战

ThinkPHP5多语言切换实战1.在配置文件中开启多语言配置2.然后添加多语言目录这里创建你需要的语言包在语言包里定义需要翻译的文本,中英文数组的键名写成一致然后在html文件里输入 {:lang(‘键名’)} 对应的键名。就是下图的写法。上边都做完以后就可以开始撸代码了:首先在前端写一个切换语言的AJAX请求PHP文件<div class="language" h...

2019-08-11 17:56:27 2487 7

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除