demo
叶先生i
精致的程序猿一枚
展开
-
Nginx反向代理、负载均衡理解及实践
可以看到正向和反向代理中代理服务器的位置是不同的,正向代理针对的是客户端,如VPN对用户来说是有感知的,如连接的是美国节点还是俄罗斯节点,而反向代理针对的是真实服务器,对用户来说是无感知的,如我们访问百度永远都是只需要输入baidu.com,而其背后有多少台服务器、具体访问的是哪个服务器我们是无感知的,这里把请求分配到具体服务器的操作就是nginx反向代理做的事情,它可以根据各种规则把请求分配到不同的服务器,这时就实现了负载均衡。nginx也需要此库。......原创 2022-08-13 15:52:24 · 1002 阅读 · 1 评论 -
PHP基于xlswriter支持无限表头层级Excel导出
本章介绍基于PHP扩展xlswriter的Vtiful\Kernel\Excel类可以支持无限层级的复杂表头导出!废了九牛二虎之力,终于把这个功能类写完了…后续会持续更新优化准备xlswriter扩展windows系统:到PECL网站下载符合自己本地PHP环境的ddl文件下载地址,并复制到PHP的扩展目录ext文件夹下,修改php.ini文件,加上这行extension=xlswriter打开phpinfo()验证扩展是否安装成功Linux系统:pecl install xlswrite原创 2022-04-30 21:25:42 · 4186 阅读 · 2 评论 -
MySQL主从复制、主主复制【MySQL 5.7,Docker】
环境准备我们需要准备两台Mysql,因为这里用Docker,所有只需准备两台Mysql容器;Docker安装Mysql:1.拉取镜像docker pull mysql:5.72.启动两个容器(一主一从)#-p 12345:3306 容器内3306端口映射至外部12345端口#--name mysql_master 容器命名#-v /docker/mysql_master/conf:/etc/mysql/conf.d -v /docker/mysql_master/logs:/logs -v原创 2022-04-17 00:18:19 · 316 阅读 · 0 评论 -
Docker Swarm集群搭建记录
一、简介Docker Swarm 是Docker官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker资源。二、名词解释swarm:集群的管理和编排。docker可以初始化一个swarm集群,其它节点可以加入。node:每一个docker主机就是一个docker节点,分为 manager 节点和 worker 节点。manager node:负责执行容器的编排和集群的管理工作,保持并维护swar.原创 2022-04-16 20:36:30 · 2552 阅读 · 0 评论 -
Docker分分钟搭建Redis高可用集群
本例中创建3主3从的Redis集群使用Docker搭建Redis集群分分钟搞定,废话少说,开搞!1.先删除当前运行的所有容器,保证环境干净docker rm -f $(docker ps -aq)2.创建一个网卡可先使用 ip addr 命令查看docker0的ip地址,用以子网地址的参考docker network create redis --subnet 172.38.0.0/163.查看创建的网卡列表docker network ls查看redis网卡的详细信息:docke原创 2022-04-16 17:39:16 · 198 阅读 · 0 评论 -
Laravel使用事件Event
第一种创建方式:这种方式较为传统,按流程一步步创建,如果后续有新的监听,需要手动创建并进行关联第一步:创建一个事件,如用户登录php artisan make:event UserLogin第二步:为事件创建监听,如给管理员发送邮件(一个事件可以有多个监听)php artisan make:listener EmailAdminUserLogin --event=UserLogin第三步:系统中注册事件和监听的关系在 app/Providers/EventServiceProvider原创 2022-01-12 11:59:06 · 828 阅读 · 0 评论 -
Laravel之模型观察者
模型观察者可以实现当绑定的模型发生增删改查等操作时做出相应的操作。模型观察文件位置:app/Observers创建模型观察者:php artisan make:observer TestObserver -m 监听的模型名模型观察者创建后需要注册,在 app/Providers/AppServiceProvider.php (服务提供者)文件中:public function boot(){ //注册监听 //被监听的模型(模型观察者) User::observ原创 2021-09-11 23:22:30 · 459 阅读 · 0 评论 -
PHP极光推送使用模板
php借入第三方推送:极光推送流程及使用先下载PHP版本的官方SDK:点击下载创建PHP极光推送类(CI框架为例):<?phpuse JPush\Client as JPush;require_once(APPPATH . 'third_party/JPush/autoload.php');class JGPush { private $app_key; //极光appKey private $master_secret; //极光秘钥 private $原创 2021-05-31 13:04:37 · 275 阅读 · 1 评论 -
mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre问题
具体报错如下:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by问题出现的原因:MySQL 5.7.原创 2021-05-09 23:02:24 · 632 阅读 · 0 评论 -
PHP处理编码问题,编码转UTF-8
function ConvertToUTF8($text){ $encoding = mb_detect_encoding($text, mb_detect_order(), false); if($encoding == "UTF-8") { $text = mb_convert_encoding($text, 'UTF-8', 'UTF-8'); } $out = iconv(mb_detect_encoding($text,原创 2021-05-07 22:47:36 · 101 阅读 · 0 评论 -
使用lsyncd技术使两台linux服务器上的项目实现同步
下面开始详细讲解配置过程及过程中可能遇到的问题:现有两台linux主机:192.168.1.10 //主机器192.168.1.11 //辅机器以下操作均在主机器上进行:安装apt-get install lsyncdapt install rsync查看安装版本lsyncd -version创建必要文件夹mkdir /etc/lsyncdmkdir /var/log/lsyncdtouch /var/log/lsyncd/lsyncd.{log,status}配置免原创 2021-04-20 14:14:31 · 372 阅读 · 1 评论 -
PHP截取字符串特定字符前后内容
获取指定字符串前的内容$AAA = '123_45678';$result = substr($AAA,0,strrpos($AAA,"_"));echo $result;//输出123获取指定字符串后的内容$AAA = '123_45678';$result = substr($AAA,strripos($AAA,"_")+1);echo $result;//输出45678原创 2021-03-22 14:53:37 · 1247 阅读 · 0 评论 -
PHP RSA加密
例如在对接支付的业务中,我们的参数有时需要进行RSA加密,以下是php进行RSA加密的方法:private function _rsa_encryption($paramStr){ $pri_key = openssl_pkey_get_private($this->secret); openssl_private_encrypt($paramStr, $encryptData, $pri_key); openssl_free_key($pri_key); re原创 2021-01-30 11:53:24 · 314 阅读 · 0 评论 -
PHP正则判断字符串必须是数字和英文的组合
在设置密码的场景中,我们要对用户输入的密码做限制,以下是具体的限制内容和写法:1.长度不能小于8位2.必须是英文和数字的组合$pwd = $_POST['pwd'];if (strlen($pwd) < 8){ return '密码长度不能小于八位';}//全数字情况if(preg_match("/^\d*$/",$pwd)){ return '密码必须包含字母';}//全英文情况if(preg_match("/^[a-z]*$/i",$pwd)){原创 2020-12-26 11:54:40 · 1997 阅读 · 0 评论 -
PHP foreach实用写法
在过去使用foreach的写法中,通常是 foreach($data as $key => $val)来获取二维数组中一维数组的信息。下面的使用方法在很多场景中很实用:$data = [ ['996','icu'], ['a','b'], ['c','d'] ];//$p1 对应一维数组的第一个元素,$p2 对应一维数组的第二个元素foreach ($data as $key => [$p1,$p2]) { print_r($p1);}//运行结果:99原创 2020-12-11 16:39:00 · 351 阅读 · 0 评论 -
php 二维数组以某个元素值排序
现有二维数组:$array = array( array( 'id' => 1, 'total' => 12 ), array( 'id' => 2, 'total' => 13 ), array(原创 2020-11-26 10:29:49 · 292 阅读 · 0 评论 -
线上支付支付宝个人支付接入流程详解
一直以为想做线上支付必须要有营业执照,害得我和很多个人开发者一样,绕了很多圈子。尝试过一些第三方的接入(不稳定,担心跑路)。原来支付宝是有个人支付接口的,利用支付宝的“当面付”接口就可实现个人版的线上支付,实时直接进入个人账户。我需要在网站上实现一个打赏功能,首先需要在 支付宝开发者中心 申请一个网页&移动应用,如图然后需要在能力列表添加“当面付”功能,签约的时候营业执照没有红色*...原创 2020-04-26 14:21:53 · 3459 阅读 · 0 评论 -
ThinkPHP5实现发送邮件功能
ThinkPHP5实现发送邮件功能流程非常简单,引入phpmailer类库–>调用函数;所用到的核心文件就3个,我已整理好:链接:https://pan.baidu.com/s/1HhINe4-qsDP_9j0iz5KKIA提取码:u4mf把phpmailer文件夹放到TP5的extend文件夹下;然后在application/extra下新建email.php<?php...原创 2019-04-22 11:49:05 · 1059 阅读 · 0 评论 -
原生PHP操作Excel将数据导入数据库
1.首先准备第三方类库PHPExecl;个人打包整理类库:http://www.glyxi.com/Download/PHPExcel.zip2.excel文件3.php代码(原生)<?php// 假定数据库用户名:root,密码:root,数据库:test_execl$con=mysqli_connect("localhost","root","root","test_ex...原创 2019-05-07 19:01:44 · 582 阅读 · 0 评论 -
PHP cURL使用多线程爬取网页内容
把要爬取的网页的url放到一个数组里,本文以爬取豆瓣租房信息为例,在豆瓣搜索租房查看网页布局后再参考代码更好,具体代码如下:$j = -25;for ($i = 0; $i < ‘要爬取前几页的页数’; $i++) { $get_start = $j = $j +25; $urls[$i] = "https://www.douban.com/group/".‘城市分组名’...原创 2019-07-22 09:10:49 · 343 阅读 · 0 评论 -
图片延迟加载3种实现方式
定义:延迟加载也称为惰性加载,即在长网页中延迟加载图像。用户滚动到它们之前,视口外的图像不会加载。这与图像预加载相反,在长网页上使用延迟加载将使网页加载更快。在某些情况下,它还可以帮助减少服务器负载。举个例子来说明,当打开淘宝首页的时候,只有在浏览器窗口里的图片才会被加载,当你滚动首页向下滑的时候,进入视口内的图片才会被加载,而其它从未进入视口的图像不会也不会加载。那么延迟加载有什么好处:首...原创 2019-07-31 16:05:03 · 440 阅读 · 0 评论 -
php 实现图片质量压缩
php实现图片压缩,可以设置只压缩质量,不改变宽高,也可以设置改变宽高,压缩比是自定义的 /** * 调用部分 * $url:图片路径 $dst_img:图片保存路径及保存的文件名 $quality:图片的质量 为数字 越小图片的大小就越小 */ $url = '图片路径'; $dst_img = '图片保存路径 如:./img/test...原创 2019-07-26 18:35:11 · 1125 阅读 · 0 评论 -
原生PHP利用QQ邮箱发送邮件
PHP发送邮件必不可少的是PHPMailer类库。PHPMailerPHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以及可以添加附件发送,并不像 PHP 本身 mail() 函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能。PHP扩展支持PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱...原创 2019-04-21 15:45:34 · 2409 阅读 · 2 评论