自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小信的博客

一个小白从入门到入坑的路

  • 博客(119)
  • 资源 (2)
  • 收藏
  • 关注

原创 PHP-Xlswriter高性能导出Excel

使用背景使用传统的PHPExcel导出效率太慢,并且资源占用高,数据量大的情况,会导致服务占用大量的资源,从而导致生产意味,再三思索后,决定使用其他高效率的导出方式。

2023-12-20 19:01:57 921

原创 Golang数据类型(结构体)

type结构体名struct属性名属性类型属性名属性类型...比如我要定义一个可以存储个人资料名为 Profile 的结构体,可以这么写age intmother *Profile // 指针father *Profile // 指针若相邻的属性(字段)是相同类型,可以合并写在一起age intmother *Profile // 指针father *Profile // 指针通过结构体可以定义一个组合字面量规则一:当最后一个字段和结果不在同一行时,

2023-12-01 16:52:40 961

原创 Golang语言基础之切片

数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性sum := 0return sum这个求和函数只能接受[3]int类型,其他的都不支持。其中,name:表示变量名T:表示切片中的元素类型// 声明切片类型var a []string //声明一个字符串切片var b = []int{} //声明一个整型切片并初始化var c = []bool{false, true} //声明一个布尔切片并初始化。

2023-11-30 17:12:55 427

原创 Golang数据类型(数组)

最后我们用显示声明但是不赋值的方式声明了变量array3,该数组的长度为我们手动指定的10,而该数组里的元素则为10个整数0,也就是在声明变量但是不赋值的情况下,Go自动为我们给整数数据类型分配的零值。针对数组array1我们通过[5]手动指明了它的长度(注意:这里array1里的元素个数刚好为0,1,2,3,4总共5个整数,和array1的长度匹配,因为数组的长度(或大小)指的是该数组能容纳的最大元素个数,并不是当前数组里有多少个元素。如果将数组作为参数传入一个函数,Go会为该数组创建一个副本,

2023-11-30 11:04:41 308

原创 Golang数据类型(数字型)

的整数类型,其中有符号整数按二进制位又可以分为int8(对应8bit大小的有符号整数),int16(对应16bit大小的有符号整数),int32(对应32bit大小的有符号整数),int64(对应64bit大小的有符号整数),以及int(与CPU相关)五种类型。,为什么会有两个值?, 其作用是用来指定我们想将字符串转换为哪类的有符号整数类型,其取值范围为0,8,16,32,64,分别表示int, int8, int16,int32和int64。浮点数用来表示带有小数点的数字,比如1.0,-45.332。

2023-11-30 00:56:16 416

原创 Golang数据类型(字符串)

要知道strings.Join()的用法,必须知道什么是切片(Slice),而要理解切片,又必须先要知道什么是数组(Array),所谓数组可以理解为一种特殊的列表,区别是列表可以包含多种数据类型的元素,而数组只能包含同一种数据类型的元素,即一个数组里的所有元素必须全部为字符串,或者全部为整数。因为英文字母的编码为ASCII,可以用字节表示。在Go中,切片是数组衍生出来的概念,两者的区别是:数组的长度是固定的,在声明一个数组时,你必须指定该数组的长度(即该数组里面有多少个元素),以及该数组里元素的数据类型。

2023-11-29 19:39:54 316

原创 Golang中rune和Byte,字符和字符串有什么不一样

Go语言中,string就是只读的采用utf8编码的字节切片(slice) 因此用len函数获取到的长度并不是字符个数,而是字节个数。for循环遍历输出的也是各个字节。rune是int32的别名,代表字符的Unicode编码,采用4个字节存储,将string转成rune就意味着任何一个字符都用4个字节来存储其unicode值,这样每次遍历的时候返回的就是unicode值,而不再是字节了,这样就可以解决乱码问题了。

2023-11-29 19:38:05 535

原创 Laravel 添加模型方法注释,让 PHPStorm 有语法提示

在项目中添加 barryvdh/laravel-ide-helper 包。

2023-03-16 21:43:20 530 1

原创 laravel Kernel 默认中间件说明

【代码】laravel Kernel 默认中间件说明。

2023-03-16 21:16:15 268

原创 yii2断点查询执行sql

因此查询日志中可能包含重复的查询语句。如果要避免这种情况,可以在执行查询之前调用**$db->flushCache()当开启查询日志时,Yii2会记录所有查询语句,包括查询缓存中的语句,这个会对我们的程序优化很有作用,可以随时查询某段SQL效率。然后我又去看了yii2中的,发现也有类似的功能。

2023-03-09 21:55:02 593 1

原创 laravel 邮件发送

可以在 mailable 类的 build 方法中使用 view 方法来指定在渲染邮件内容时要使用的模板。由于每封邮件通常使用 Blade 模板 来渲染其内容,因此在构建邮件 HTML 内容时你可以使用 Blade 模板引擎提供的所有功能及享受其带来的便利性。在此方法中,可以调用各种方法,例如 from、subject、view 和 attach 来配置电子邮件的呈现和传递。有两种方法配置发件人。邮件中的每一项都在配置文件中有单独的配置项,甚至是独有的「传输方式」,允许你的应用使用不同的邮件服务发送邮件。

2023-03-04 01:24:08 845

原创 windows10 wsl子系统固定ip启动分配网卡法

我的文件位置是D:\powershell\static_ip.bat。这个是dns,这里使用的是阿里云的dns,当然,其他dns也可以。,有可能该文件不存在,直接使用vim编辑就好了,会自动新建的。值得注意的是,在添加了网卡后,有可能存在网络不通外网的情况。向vEthernet (WSL)网卡添加一个IP。向wsl子系统网卡添加一个IP。

2023-02-26 14:13:11 1567

原创 使用PHP+yii2调用asmx服务接口

6:选择之后项目中会有一个Test.asmx服务程序,打开如下所示,如果想在一个服务中实现多个业务的方法就给多个[WebMethod]标签。在浏览器输入http://localhost:8091/Test.asmx,即可访问Test整个测试服务,如下图所示,说明服务发布成功。2.把WebROOT整个目录发布到IIS作为一个站点服务,输入网站名称,目录地址,和端口号,勾选立即启动。10:右键点击Test.asmx,选择在浏览器中查看即可看到该web服务中的方法列表。9:左侧有发布信息,如下则发布成功。

2023-02-21 11:19:48 644

原创 Ubuntu防火墙基本操作

Ubuntu使用的防火墙名为UFW(Uncomplicated Fire Wall),是一个iptable的管理工具。

2023-02-09 15:50:08 182

原创 php实现socket简单通信

为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。这是比较正式的理解,在接下来使用方式中会在介绍到握手的实际含义。目标:我希望通过套接字的TCP传输来搭建一个服务器,这个服务器的作用是:接受多个客户端的连接并完成他们的相互通信。比如客户端A,客户端B同时连接到服务器S,客户端A向服务器S发送消息,服务器S会将A的消息转发给B,同理,B的消息也可以通过S被转发到A。这样就实现了客户端A和客户端B之间的相互通信。

2023-02-09 15:46:20 1194

原创 php外部调用非public方法--反射调用

通过反射,我们可以在运行时以逆向工程的方式对 PHP 类进行实例化,并对类中的属性和方法进行动态调用,不管这些属性和方法是否对外公开。比如将TeseService类的prTest方法设置成private。级别的属性和方法变成类以外可以访问。可以通过反射的方式将。在外部直接调用会报错。

2023-02-01 11:26:28 145

原创 laravel JWT 用户认证 实现API认证

JWT 由头部(header)、载荷(payload)与签名(signature)组成“sub”: 1,signature头部申明了加密算法;载荷中中记录了一些关键数据:iss: 签发者,也就是 package.test;iat 签发时间;exp 过期时间;nbf 在这个时间之前,该 JWT 都是不可用的,一般同签发时间 iat;jti 唯一标识符,防止重放攻击。sub 用户标识,这里是用户 ID。

2023-01-12 14:26:26 1064 1

原创 控制js,css资源加载缓存和控制版本问题

如果该字符串不改变,就算修改了最新的代码,浏览器也不会加载出最新代码,当然,使用浏览器强制刷新缓存也是可以的,但是不建议怎么做。当浏览器加载 JavaScript 文件时,如果查询字符串的。当加载 JavaScript 文件时,浏览器会。,浏览器就会认为这是一个新的文件,并将其。这样,在浏览器加载的时候,就会把这个。

2023-01-09 10:16:06 511

原创 Laravel validate验证器 返回格式修改

状态码是不通过ajax请求的,这显然不符合我们的习惯。通过查看源码,最终发现返回格式是在这里设置的。效果非常不错,这样就符合我们的请求习惯了。所以,可以在我们需要改变的地方改变它。不通过的时候,官方返回的。

2023-01-06 15:51:50 479

原创 Laravel request请求表单验证

Laravel request请求表单验证。

2022-10-11 19:31:14 478

原创 浅聊使用PHP实现微信公众号登录

每个公众号都有对应的AppID和AppSecret,可以登录微信公众平台基本配置中的开发者ID可以查看到。当然,这对应的是生产环境,对于那些关注的人数较多的公众号来说,是不会用这个ID来进行测试的。因此,微信公众平台还提供了相应的测试账号。code=12334566778&state=abcd的页面,在该页面中code是微信返回的一串字符串,且使用一次后即失效。公众平台测试账号进入(根据不同微信号可以在同一个公众号中建立不同的测试账号)。当用户点击该链接的时候,微信会弹出授权页面,当用户确认授权后,

2022-10-10 08:53:44 2046

原创 PHP在处理一些耗时任务时的处理方式

Symfony的Process组件用于在子进程中执行命令,其原理是使用PHP的proc_open函数来运行进程。支持Windows和Linux系统。这个函数和Linux下这个函数类似。需要注意的是,这个函数在Linux下才能使用,而且需要安装。PHP是支持并发的,只是平时很少使用。创建进程需要使用php的一个函数。,Linux下有个叫fork()的函数,

2022-09-30 08:55:52 794

原创 PHP 邮箱真实性检测

邮箱地址真实性检测接口,检查校验判断邮箱有效性,邮箱是否开通,邮箱是否真实邮箱,能否收到邮件,避免无效邮箱的发送与验证。

2022-09-19 11:49:31 797

原创 laravel 默认登录验证密码加密方式 加入多种验证方式

打开EloquentUserProvider.php文件,将validateCredentials这个方法里的内容修改成自己想要的加密方式。首先,打开这个文件夹/vender/laravel/framework/src/illuminate/Auth。由于我从其他地方同步过来的用户,密码的加密方式是不一样的,所以就会用到多种密码验证方式。按照加密方式的特点,可以加入很多种验证方式的。...

2022-07-18 11:44:37 572

原创 Laravel composer 出现 PackageManifest.php: Undefined index: name

composer在引入库的时候出现的问题,由于版本问题,出现了这个错误,一般都是项目使用的composer版本和控制台的composer版本不对,引发的此类问题!

2022-07-15 14:08:29 753

原创 linux进程控制类命令

ps命令是用来显示系统的进程信息,它可以显示出在用户输出ps命令时系统的进程及进程的相关信息格式:ps [参数]显示本用户的进程查看系统和每个用户的全部进程功能:该命令用于向某个进程(通过PID标识)传送一个信号,它通常与ps和iobs命令一起使用kill命令的格式是:kill -signal PID常用参数:功能:使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程用法:killall [参数] 正在运行的进程名...

2022-07-05 08:47:13 178

原创 zabbix item监控项的基本配置

1.zabbix agent(zabbix客户端):需要在要探测的主机上安装zabbix-anget,默认是被动式2.zabbix active(zabbix主动式):通过zabbix active进行获取数据3.简单检查:用于不支持安装客户端或者不支持其他相关协议的情况下,使用的一种技术4.snmpv1,snmpv2.snmpv3:简单的网络管理协议,主要用于探测那些支持snmp协议的设备,常见的有可网管交换机,路由器,防火墙等网络设备,还有网络打印机,复印件。相当于zabbix passive模式

2022-06-27 08:20:53 419

原创 nginx配置详解

文件识别nginx是不认识后缀的,它只会认识在这个mime.types里面指定的文件后缀,比如说什么文件在线预览,什么文件去下载但是nginx有一个默认的指定的文件后缀保存连接,最大连接时间server模块端口域名 主机名路由自定义错误页面...

2022-06-14 14:38:33 286

原创 nginx-负载均衡

负载均衡写在轮询weight(权重)指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况ip_hash根据客户端的ip地址转发同一台服务器,可以保持回话

2022-06-13 08:44:12 87

原创 redis的缓存穿透和缓存击穿和缓存雪崩

这是一个站点查询的数据流程或者可以这样理解总得来说,产生缓存穿透的原因解决方案1.对空值缓存2.设置可访问的名单(白名单)3.采用布隆过滤器key可能会在某些时间点被超高并发地访问,是一种非常热点的数据。这个时候,需要考虑一个问题:缓存被击穿问题出现的原因缓存击穿解决方案1.提前设置热门数据2.实时调整:3.使用锁缓存雪崩与缓存击穿的区别解决方案1.构建多级缓存架构2.使用锁或队列3.设置过期标志更新缓存4.将缓存失效时间分散开

2022-06-02 08:41:56 81

原创 redis的读写分离和主机宕机

主写从读,读写分离主:只允许写操作从:只允许读操作主机宕机,从机原地待命主机宕机后,他的从机的状态会变成未启用,因为它要等他的老大,也就是主机正常运行后,它才工作模拟一下关闭主机的服务redis-cli -h 127.0.0.1 -p 6379 shutdown查看其它从机的主从角色从机一从机二从机宕机,主机少一个从机,其它从机不变模拟一下首先关闭一个从机 redis-cli -h 127.0.0.1 -p 6380 shutdown主机当前的角色本来有两个从

2022-05-31 09:13:43 348

原创 redis的主从复制

主从复制主机数据更新后根据配置和策略,自动同步到从机的master/slave机制,master以写为主,slave以读为主redis的主从复制:主少从多,主写分离,主写从读, 主写同步复制到从搭建一主二从redis集群搭建三台redis服务:使用一个人Redis模拟三台redis服务(正常是一台机器一个redis服务)修改三份配置文件:redis6379.conf,redis6380.conf,redis6381.conf每一个配置文件需要修改的地方:bind 127.0.0.1po

2022-05-31 08:00:32 113

原创 redis中的事务操作

事务把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败允许把一组redis命令放在一起,把命令序列化,然后一起执行,保证部分原子性multi:用来标记一个事务的开始例如multiset k1 v1 set k2 v2这样子就会把命令放到队列中等待执行exec:用来执行事务队列中的命令exec //相当于mysql中的提交redis事务只能保证部分原子性如果一组命令中,有在压入事务队列过程中发生错误的命令,则在本事务中所有的命令都不执行,能够保证事务的

2022-05-27 09:05:56 146

原创 redis的持久化

redis的持久化redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即redis所在服务器发送宕机后,redis数据库里面的数据会全部丢失,为了解决这个问题,redis提供了持久化功能RDB和AOPRDB配置save <seconds> <changes>配置复合的快照触发条件,即redis在seconds秒内key改变changes次,redis把快照内的数据保存到磁盘中一次默认的策略是1分钟内改变了1万次或

2022-05-26 08:13:48 706

原创 redis配置文件详解

Redis的配置文件在Redis根目录提供redis.conf配置文件 我的路径是/usr/local/redis/redis.conf> 可以配置一些redis服务端运行时的一些参数 如果不使用配置文件,那么Redis会使用默认的参数运行如果使用配置文件,在启动时必须指定所使用的配置文件redis配置文件关于网络的配置port:指定redis服务所使用的端口,默认是6379bind:配置客户端连接redis服务时,所能使用的ip地址,默认可以使用redis服务所在主机任何一个ip都可以

2022-05-25 08:27:28 1649

原创 redis有关有序集合的操作

Redis中有关zset类型数据的操作命令有序集合,本质上是集合,所有的元素不得重复每一个元素都关联一个分数,redis会根据分数对元素进行自动排序 分数可以重复有序集合每一个元素都有顺序,那么必然会有下标有序集合中元素的排序规则和列表中的排序规则是不一样的将一个或多个member及其score值加入有序集合zadd key score member [score1 member1....]zadd zset 20 z1 21 z2 23 z3获取指定有序集合中指定下标区间的元素z

2022-05-24 08:36:49 674

原创 redis中有关哈希类型的操作

hash类型数据的特点单key:field-value field valuestyudent:id-10000name-zhangsanage-23将一个或者多个field-value对设置到哈希表中hset key field value [field2 value2]hset hsm name linrux age 22获取指定哈希表中指定field的值hget key fiedlhget hsm name批量获取指定哈希表中的field中的值(获取多个)hmge

2022-05-20 08:30:09 438

原创 Redis有关集合的操作命令

Redis中有关set类型数据的操作命令单key-多无序value一个key对应多个valuevalue之间是没有顺序的,并且不能重复通过业务数据直接操作集合将一个或多个元素添加到指定的集合中sadd key value [value1,value2]如果元素已经存在,则会忽略如果成功,返回成功添加元素的个数获取指定集合中的所有元素smembers key判断指定元素在集合中是否存在sismember key member //存在 返回1//不存在 返回0获取

2022-05-19 08:35:31 883

原创 Redis-列表类型的操作命令

Redis中列表是单key多value(有序)一个key对应多个有序value 多个value之间有顺序,最左侧是表头,最右侧是表尾每一个元素都有下标,表头元素的下标是0,表尾元素的下标是-1将一个或多个值依次插入到列表的表头lpush key value1 value2 value3 value4讲一个或多个值插入到列表的表尾rpush list1 l o p获取指定列表中下标区间的元素lrange key 0 -1移除表尾lpop list1移除表尾rpop

2022-05-17 08:38:51 263

原创 redis中字符串类型的操作命令

redis中字符串类型的操作命令将string类型的数据设置到Redis中set 键 值set name xiaoxin如果key存在的话,就会把以前的value覆盖set name linxiaoxin从Redis中获取string类型的数据get 键get name追加字符串append key valueappend name 666 //返回追加之后的字符串的长度如果key不存在,则创建一个新的key,并且把value值创建为value获取字符串数据的长度s

2022-05-16 00:10:52 275

空空如也

空空如也

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

TA关注的人

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