自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 你说什么称得上优秀程序员

诚然,大家都希望做一个优秀的程序员,易或者优秀的人?有人说,程序员必须具备的十大品质:1. 理解技术债务;2. 保持对原理的好奇心;3. 专注;4. 同理心;5. 谋定而后动;6. 架构思维/全局思维;7. 设计语言;8. 追求代码质量;9. 代码审查;10. 自动化。等等一系列优秀品质。当然,掌握这些不管是对于自己的生活、还是工作来说,这些都是非常好的一个事情。但对于一个我觉得好像又有些犯不上,为什么呢?且听我娓娓道来。

2023-05-15 21:30:52 157

原创 使用php - 随机生成10尾数密码

使用php - 随机生成10尾数密码。

2023-05-12 12:46:55 225

原创 nginx首次安装,其他用户下的html文件和php文件无法访问情况。

安装需要的软件、诸如nginx、 PHP、mysql等,其实大部分是使用root用户去安装的, 但这时候会有个问题,一般来说,我个人是不会针对比如nginx专门创建一个nginx用户组,而是会直接创建个类似mosheng的用户组,在mosheng下完成我所有的开发工作,以前开发一直是正常,但可能这次是我配置的权限问题,导致出现了如此问题。上文的问题其实很简单,就是mosheng的用户组访问不到nginx和php-fpm用户组的问题,导致失败,所以只需要修改成对应的用户组,在去访问既可。

2023-03-29 18:05:36 523

原创 mac下,使用 docker 搭建,单机机器集群

背景:在 Mac本下,通过 docker 完成一个 es 集群(3台-或许可多台)搭建。(后续如果有真实的机器,只需要又该对应的 ip 地址即可,需要关注的是,机器间是可以互相 ping通的,并且 iptable是放开的端口)详细步骤:首先创建一个新的 docker 网络查看创建当前的网络是否创建成功,可以看到下图是创建成功的,设置三个 es.yml, 通过文件资源共享,es 执行的时候会自动调用。Node1 节点 es1.yml。

2022-12-30 15:14:21 1026

原创 golang查询mysql,查询并写入20万数据到excel中

1、较上午写的,mysql类有进一步完善,没有使用interface类型处理,而是将数据存储到mobile结构体中,同时暂存到一个切片中,后再去写入

2022-06-12 19:46:38 933

原创 golang操作mysql数据库,增删改查

golang操作mysql数据库

2022-06-12 17:11:57 507

原创 php实现单项有序链表

<?php// 单项链表// 定义类用来存储运行时的信息class Node{ public $id; public $name; // 指针域 public $next; public function __construct($id = null, $name = null) { $this->id = $id; $this->name = $name; $th

2022-05-19 10:06:25 189

原创 mysql配置主从复制信息

# 查看主服务器的master节点信息show master status;# 在主服务器配置账号create user 'repl_5'@'%' identified by 'repl_5';# 分配权限grant replication slave on *.* to 'repl_5'@'%' identified by 'repl_5';# 查看是否开启了防火墙,如果没有需要开启systemctl status firewalld # 查看状态systemctl start fi

2021-09-04 07:49:02 87

原创 使用php结合redis-zset,hash类型完成延迟队列信息。

创建create_list.php# 实例化 redis对象$redis = new Redis();# 建立链接$redis->connect('127.0.0.1',6379);echo " 模拟实现 延时队列 \n ";# 定义时间戳超出当前的时间$time = time() + 20;# 存储zset有序集合中,存储到这里是方便,如果有个较高的优先级,$redis->zadd('zset',$time,$time+1);# 将这个时间戳的data值保存到has...

2021-03-17 15:30:34 151

原创 php实现面向对象七大设计原则

面向对象七大设计原则:单一原则:一个类只用来负责一个功能模块,比如支付类,只允许有支付类存储<?php# 单一职责原则 即一个类只用来做当前项目中惟一的方法class SingleResponsibility{ public function __construct() { echo "我是支付类,我只负责支付"; } public function Play() { echo "开始支付"; } public function Checkpl

2021-03-16 10:23:01 267 1

原创 使用swoole编写超简单版IMI通信案例

使用swoole完成简单版的im通信案例,超简单版的通信。IMI通信是通过fd来通信的。真的美了,原来如此,但是这个是超简单版的通信案例,原生写的。怎么也没想到原来这么简单,说实话,码云,或者github真的很棒,自己略微有点基础,然后在借鉴一下别人写的代码,就会相对来说,很容易做出来东西,刚开始看别人写的代码真的很棒,码云和github真的很不错,由衷的赞美一下,多亏了别人的源代码了。别人估计也做不出来。注意:第一步,首先开启server类,php server.phpwebsocket.html

2021-02-16 18:21:48 436

原创 简单版,客户端和服务端使用websocket进行连接通信

注意:如果发现连接不上websokect,大概率有两种情况,一种是防火墙没有关闭,一种是安全组未开放,其实就是端口未开放。客户端:页面<!DOCTYPE html><html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>WebSocket链接</title> <style media="screen"> @cha

2021-02-07 14:01:24 1048

原创 第一天,搭建环境,编写建议流程图

搭建环境本地使用虚拟机进行开发, 安装好centos之后,先配置一下网络,让本机可以访问网络,在使用xhsell链接。使用lnmp一键安装,快速搭建这个环境。php版本:7.4.12mysql版本:5.75. nginx版本:1.18swoole版本 4.5.9redis版本:6.0使用laravel5.8当框架写这个写一个im通信的。...

2021-02-06 20:53:13 111

原创 过年不回家大约假期12天规划安排

前言:从今天开始放假,不回家了 ,规划一下这段时间的安排,大概假期为12天,从今天开始,一直到18号上班,规划一下这段时间的安排。计划:使用php+mysql5.7,结合swoole+redis,做一个IM通信案例,这个应该不需要太久,做一个简单版的就可以,如果提前做完的话,就在像一个别的项目。系统环境:centos7.6 + nginx1.6 + php7.4 + mysql5.7 + swoole4.5.9 + redis6​ 今天把整个项目的构图,思维导图,绘画出来,然后环境都配好,练习一下sw

2021-02-06 11:02:12 319 3

原创 php通过curl发送post请求携带body参数,和发送get请求

PHP发送post请求,携带body数据,# url,请求路径,postdata 请求body参数,注意是json格式public static function btnPost($url,$postdata){ # 初始化一个curl会话 $ch = curl_init(); # 启用时会发送一个常规的POST请求 curl_setopt($ch, CURLOPT_POST, 1); # 需要获取的URL地址 curl_setopt($ch, CURLOPT_..

2021-01-23 10:37:02 5871 4

原创 native连接不上liunx中的mysql的解决方案之一

在liunx中输入命令:mysql -uroot -proot允许root从任何主机连接到mysql服务器,并使用你设置的密码连接GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '设置你的连接数据库密码' WITH GRANT OPTION; 立即执行授权命令: flush privileges;查看授权用户: SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS.

2021-01-20 07:29:48 554

原创 Liunx 安装redis 及 redis扩展,

首先在这个网址下载对应的扩展:http://pecl.php.net/package/redis下载完成之后,上传到服务器中,并进行解压,比如:tar -zxvf redis-5.3.2.tgz解压完成后进入到此目录中,cd redis-5.3.2输入:phpize # 不出意外是在解压过后的压缩包中输入:find / -name “php-config” # 查找自己想要按照php版本的文件输入:./configure --with-php-config=/www/server/php/74/.

2021-01-19 07:39:21 118

原创 Liunx上MySQL 第一次创建,修改mysql中的用户密码。

首先输入:vi /etc/my.cnf 然后找到【mysqld】模块中,添加:skip-grant-tables; 此模块是为了不适用密码登陆,保存退出输入:/etc/init.d/mysqld restart # 重启mysql服务,输入:mysql , 在use mysql; 进入到这个数据库中输入:select user,authentication_string from user; # 查询mysql用户信息输入:update user set authentication_strin.

2021-01-18 07:59:17 112

原创 虚拟机链接当服务器,websocket链接不上问题记录。

在学习swoole中,有个超简单的websocket链接的demo,但是我的本机死活连接不到虚拟机中的地址,但是在虚拟机中curl可以访问,所以拜访大佬,解惑了,两点考虑,一点是网络链接方式,桥接或者nat链接,一种查看是否开启了防火墙。liunx开启nat配置,打开虚拟机中的网络配置编辑器,查看设置,然后在虚拟机中输入编辑liunx网络的配置vi /etc/sysconfig/network-scripts/ifcfg-ens33将虚拟机中的网络配置,写道这个文件中,并设置BOOTPROT

2020-12-03 22:40:49 987 5

原创 阿里serverless活动之行,

前言:最近一直就是上班,学习。一直处于自己的世界中,没有和其他共同爱好者产生共鸣,感觉这样不太好,然后就想着参加一些沙龙活动,我要是没记错的话,我是通过开源中国中的沙龙活动看到的这个serverless,因为是阿里创建的么。而我又是一个渣渣的技术人员,从事的也是个小公司,奔着免费的原则,然后还是阿里这样的大厂,虽然我还没接触过什么叫做,serverless,但是我还是想去看看,见识见识。我一直想去这个公司工作,但是,哎,一言难尽,自己还是太渣渣了。下午1.30正式开始,我虽然也在北京,但是从我住的地方到

2020-11-15 11:05:02 281

原创 thinkphp 对接阿里云短信支付,其主要是新版composer对接阿里短信

前沿:新项目,是thinkphp6中开发的,然后需要对接一个短信业务,选择了阿里云短信sdk,新版的sdk使用的是composer 直接安装的,但是阿里云提供的文档,应该是zip包,所以文档不对应,composer下载的sdk和官方提供的sdk的文档不对应,所以备受踩坑,以前是将这个zip包放到,extend目录中,这次是直接使用composer进行安装,更方便和快速,但是没有文档还是很不爽的,所以暂做一次记录。1. 使用composer下载阿里云sdkcomposer require alibaba

2020-11-13 12:01:11 883

原创 闭包和匿名函数,生成器的演示,多态,递归,反射机制,curl发送请求

上午:php闭包中的应用:php闭包函数和匿名函数,意义是相同的,在方法中定义了一个没有名称,但是用户返回值的函数,同时,在闭包中可以通过use访问外部变量,但是外面却无法访问闭包函数中的变量,除非,使用global全局定义。header('Content-Type:text/html;charset=utf-8');$str = 1;$arr = [1,2,3,4,5];# 定义变量$hah = 1;# 将$res = function() use ($str,$arr){

2020-11-02 20:11:01 89

原创 php单例模式

<?phpclass Single{ # 创建一个 私有的 静态对象 为什么一定要创建一个静态的属性,因为 私有化构造方法,再去使用$this就会报错,因为不可在创建实例化对象了。 private static $obj = null; # 私有化 构造方法,不允许创建实例化对象 private function __construct(){} # 创建一个静态方法,因为不能再实例对象 public static function getIn

2020-10-20 13:41:40 303

原创 php 实现 工厂模式

<?php# 定义一个抽象方法abstract class PubAction{ abstract public function index(); public function demo(){ }}#如果继承抽象类,那么抽象类中的抽象方法,必须要全部实现# 定义一个A类 继承 抽象类class A extends PubAction{ public function index() { return "我是A中的方

2020-10-20 13:41:02 446

原创 php原生生成验证码类

<?php# 创建一个验证码生成类// Create the imageclass Verify{ private $fontfile = 'E:\phpstudy_pro\WWW\php7\simkai.ttf'; public $width = 120; # 画板宽度 public $height = 50; # 画板高度 public $red = 25;# color red 色值 public $blue = 10;# color blue

2020-10-20 13:40:14 163 2

原创 手机端微信支付,调用微信app完成支付。

<?phpheader("Content-Type: text/html;charset=utf-8");if($_POST['wechatm_two'] = 'wechatm'){ $order['order_sn'] = $_POST['order_sn']; $order['order_amount'] = $_POST['order_amount']; $cart_goods[0]['goods_name'] = $_POST['goods_name']; $cart_good

2020-09-08 22:26:56 786

原创 微信支付pc端native支付,

前言:工作需要,想一个ecshop开发一个支付功能,支付宝功能已经对接好了,开始对接微信pc扫码支付,和手机端支付,然而就弄扫码支付昨天弄了一下午,因为技术不行,eschop的代码可能是很多年前了,所以一个php文件就是一长溜的if判断,没有类,纯php写的if判断,很难受,所以官方的sdk不能使用异步通知信息,主要是手写微信异步回调之后的,前面文件闹得,恶心的一批。官方下载nativesdk,然后配置信息就是appid呀等等信息,该配置文件存放在example/WxPay.Config.php,对应

2020-08-27 08:57:51 1003

原创 记录一次支付宝接口,向下兼容php版本问题(5.3)

因为项目需要所以在对接支付宝的支付功能,直接引用的是官方的sdk,现在只会使用官方提供的sdk,然后因为php版本是5.3的,单支付宝提供的sdk版本是要最低5.5的,所以在对接的时候出现了问题,一个是json_encode函数的问题,php在5.5的时候引入了JSON_UNESCAPED_UNICODE这个常量,但是在5.3的时候还没有引入所以报的错误,解决办法是重写这个json_encode方法,第二个是签名的问题,openssl_sign也是不支持常量,这个位置切记要是两处地方,不然只改一处的话,到时

2020-08-25 08:55:08 633

原创 php结合redis实现模拟队列执行,

上篇通过事务加排它锁完成,仿秒杀结构,现在使用redis模拟放秒杀,处理秒杀,感觉就像是处理一批广场舞大妈,刚开始都是乱轰轰的,需要通过一定的规则,将他们排好序,一排排的走,谁先来谁先进。秒杀要处理的问题,很多,感觉加锁,比较靠谱redis.php的代码 这里的代码是压测工具访问的代码<?php$redis = new Redis();# 进行redis连接$redis->connect('127.0.0.1',6379);# list链表名称$redis_name = 'mia

2020-08-22 22:03:38 300

原创 php使用mysql完成并发仿秒杀练习。

php实现仿秒杀功能前沿: 学习让人上瘾,开始该学习学习并发了,秒杀正好是一个非常好的例子,先使用mysql处理,在使用redis处理。使用jmeter压测工具,测试并发访问500个请求会出现什么样的结果,数据表CREATE TABLE `goods` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id', `price` decimal(10,2) DEFAULT NULL COMMENT '商品价格', `num` int(11)

2020-08-22 16:58:31 299

原创 Mysql-左右链接,慢查询,

A表,B表select * from A left join B on A.id = B.id;left join 是以A表做为节点去匹配B表中的数据,查询的以A表为基础去寻找,假设A中有4条数据,而B中有10条数据,那么最终left join查询出来的数据将会只有4条,至于里面的字段如果没有以空位表示。select * from A right join B on A.id = B.id;right join 是以B表作为节点去匹配A表中的数据,假设B表有10条数据,而A表只有4条数据,那么本

2020-08-21 08:54:14 208

转载 原生php实现,图层合并,通过文字生成图片,

需求:最近在做一个原生的php项目,要通过用户上传的图片和信息,生成一个对应的证件,就想到了使用GD库,但是现在的是自己不太会,所以靠百度,找到了一个大佬写的代码,然后封装了一下,实现了此效果,留下记录,以后可以直接拿来使用,php代码<?phpclass ImageHandle{ private $tmpdir = "."; # 文件目录必须的是绝对路径,但是后来没用上 我就先保留了 private $font = array("family" => "E:/

2020-08-04 21:24:05 379

原创 oss设置跨域规则之后,但是不生效,解决跨域问题。

前言:本页面图片,通过img标签访问oss地址,获取图片。然后通过js在进行请求oss接口,获取图片的元数据,出现了跨域问题,设置了跨域规则,但是不起作用,原因是:第一次img标签请求的图片,会在当前页面产生一个http的请求头,然后你再那ajax去请求的时候,会触发浏览器的同源策略导致,报错信息: Access to XMLHttpRequest at 'https://ss-cwpanet-1.oss-cn-hangzhou.aliyuncs.com/uploads/images/202.

2020-07-01 14:47:09 2837

原创 原生php实现容器、ioc、di的方法和个人理解。

第一种方式,普通方式实现模拟操作数据库方法 # 第一种写法,耦合度高# 模拟db操作数据库的类class dbMysql{ public function query() { return " 这是 db操作mysql的类"; }}# controller是需要dbmysql才能操作数据库class Controller{ # 定义一个私有的变量 用来存放数据库操作对象 private $db; # 构造函数 public function __construc

2020-06-21 22:59:42 299

原创 phpstom配置xdebug

phpstom安装xdebug前言:安装这个总比,自己一点一点,die香。查看自己的php版本,输入phpinfo,查看php版本如果我们不知道下载xdebug那个版本的那么,访问这个地址:https://xdebug.org/wizard,将php打印的所有信息放到这个框中,点击箭头标明的地方。会将你的php版本信息打印出来,同时会出现适合你的xdebug版本,点击下载。然后打开你的php存放的位置将,下载的dll文件放到ext文件目录下打开php.ini文件,将刚刚文件

2020-06-20 19:45:25 141

原创 phpexcel数据导出加打包,

前言:项目中存在本地服务器图片和阿里oss图片,需要将信息导出,并下载,oss下载到本地太占信息,所以拷贝到一个oss到一个地址,然后告诉用户地址,在将这个文件夹下载,路径要和导入的excel文件中的url地址相匹配,本地服务器的文件,则直接打包到这个zip包中,下载。`phppublic function package(Request $request){ if($request->isPost()) { # 前台发送过来的请求信息 /*

2020-06-07 22:28:13 439

原创 php 使用phpexcel实现数据导出

先做一个简单的数据的导入导出,明天将图片打包下载,oss移动文件,和数据导出完善,namespace app\admin\controller;use think\Controller;use think\Request;use PHPExcel;use PHPExcel_IOFactory;class Demo extends Controller{ public function index() { # sql查询 $data = \a

2020-06-06 20:42:44 419

原创 mysql事务,先写入到日志中,当提交时才会写入到磁盘。

mysql开启事务之后,如果事务最后进行了 ,回滚,那么原有的自增的主键id,会删除,假设新增的主键id为1,但是在事务中进行了回滚,那么在他下次新建的时候,id将以2开始。事务日志 undo log(撤销日志) redo log(记录事务操作日志)进入mysql命令行,输入方式为 mysql -uroot -proot,# 查看日志文件 show engine innodb status# 输入命令显示的一些 日志信息# Log sequence number 368355979..

2020-06-06 17:44:00 2340

原创 图片打包下载,本地服务器打包文件下载,及线上图片地址下载

最近做的项目是一个图片的项目,刚开始偷懒上传到的是本机服务器上的路径地址,然后上传到线上一段时间之后,人多服务器带不起来了,就赶紧将图片地址由本机地址,上传到阿里云oss上,然后现在就开始遇见难题了,首先要判断地址是否是https请求的,如果是https请求的则替换方法,目前先将,本地服务器打包下载文件,和线上图片地址下载,访问打包下载放上,然后在整合代码。本地服务器下载图片,打包下载# 本机服务器打包下载 好的代码,现在欠缺的是 循环得出所有的图片地址 public function dow

2020-06-05 21:47:48 4410

原创 mysql 视图、触发器、存储过程,简单练习。

# 触发器监听 insert添加事件create TRIGGER login_timebefore insert on test_studentfor each rowbegin update test_login set count = count+1 where id = 1;end;insert into test_student(`name`,`age`,`gender`) VALUES('小红',19,'理科5班'); # 触发器 监听更新事件create trigg

2020-06-02 22:57:50 216

空空如也

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

TA关注的人

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