自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言快速排序,归并排序

#include <stdio.h>#include <stdlib.h>void quikSort(int[], int, int);void mergeSort(int[], int, int);void merge(int[], int, int, int);void swap(int[], int, int);int patition(int[], int, int);int numberOfThree(int[], int, int);int

2021-09-17 17:46:28 153

原创 C语言二叉树操作

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>typedef struct BTNode{ char data; struct BTNode *lChild; struct BTNode *rChild;} BTNODE, *BTREE;BTREE create();void preOrder(BTREE);void inOrder(BTREE);void

2021-09-16 16:58:58 109

原创 C语言队列的算法操作

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *pNext;} NODE, *PNODE;typedef struct Queue{ PNODE pFront; PNODE pRear;} QUEUE, *PQUEUE;void init(PQUEUE);voi

2021-09-06 15:19:37 155

原创 C语言栈的操作算法

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *pNext;} NODE, *PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;} STACK, *PSTACK;void init(PSTACK);voi

2021-09-03 17:53:12 114

原创 C语言链表的操作算法

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *pNext;} NODE, *PNODE;PNODE createLinkList(int);void showLinkList(PNODE);bool linkListIsEmpty(PNODE);int linkListLeng

2021-09-02 18:30:13 74

原创 C语言连续存储数组的算法

#include <stdbool.h>#include <stdio.h>#include <stdlib.h>struct Arr{ int *pBase; int len; int cnt;};void init_arr(struct Arr *arr, int length);bool append_arr(struct Arr *arr, int val);bool delete_arr(struct Arr *arr,

2021-09-02 18:28:04 112

原创 使用Mysqldump备份还原数据库

一、备份数据库mysqldump -h 127.0.0.1 -uusername -ppassword --single-transaction databasename|gzip > /www/backup/database/databasename_`date +%Y%m%d`.dump.gz将数据备份到本地的话 -h可以不用写,将数据备份到远程,将127.0.0.1换成远程IP地址即可二、还原数据库mysql -uusername -ppassword databasename &lt

2020-11-30 11:12:46 70

原创 Thinkphp5使用Elasticsearch7.0(或以上)

Elastic 7.0以上的版本跟6.0的版本差距非常大,主要是没有type了,网上很多都是老版本的教程。导致我走了很多弯路。一、使用composer安装Elasticsearchcomposer require elasticsearch/elasticsearch二、新建一个文件ElasticSearch.php<?phpnamespace app\common\library;use Elasticsearch\ClientBuilder;use think\Config;

2020-11-05 11:09:18 1175 1

原创 tp5.1使用自定义中间件验证参数

之前写了一篇tp5.1重构参数校验层的文章,没看过的可以去看看tp5.1重构参数校验层比如,我们需要创建一个用户,则需要对用户名,密码、邮箱等参数进行校验,所以先创建个User验证器。代码如下:<?phpnamespace app\validate;class User extends Base{ protected $rule = [ 'username...

2020-04-19 20:33:02 1388

原创 vue 解决axios会发送options请求

问题描述:Vue的开发者都知道axios,很多都用axios来进行数据交互,axios的默认请求头是Content-Type: application/json使用这个请求头会出现向服务器请求两次的情况为什么呢?原因是:浏览器会首先使用 OPTIONS 方法发起一个预请求,判断接口是否能够正常通讯,如果不能就不会发送真正的请求过来,如果测试通讯正常,则开始真正的请求。这样每个请求都会发送...

2020-04-17 15:48:15 4641 2

原创 vue 使用vue-router路由

1.安装vue-routernpm install vue-router -S2.在src目录下新建一个文件夹router,在router文件夹里新建index.js文件,代码如下:import Vue from 'vue'import Router from 'vue-router'import Hello from '../components/HelloWorld' //看需要引...

2020-04-16 21:00:25 123

原创 PHP 多线程curl

function multi_post($urls, $params,$header){ //设置curl $chArr = []; for ($i = 0; $i < count($urls); $i++) { $chArr[$i] = curl_init($urls[$i]); curl_setopt($chArr[$i], C...

2020-04-16 15:38:56 338

原创 vue api接口管理

api接口管理1.在src目录下新建api目录,在该目录下新建axios.js文件,代码如下:import axios from 'axios'const config = { baseURL: 'http://base.com', //http请求baseurl timeout: 5 * 1000, // 请求超时时间设置 crossDomain: true ...

2020-04-15 15:45:14 926

原创 微信小程序使用过滤器filter

1.新建文件date.wxs,代码如下: var formatNumber = function(n){ n = n.toString() return n[1] ? n : '0' + n } var regYear = getRegExp("(y+)", "i"); var dateFormat = function(timestamp,form...

2020-03-25 23:56:41 1275

原创 从零开始打造自己的PHP框架——第6章

目标自定义全局异常重构Exception一、为什么要重构Exception接着上一章的例子<?phpnamespace app\ctrl;use app\validate\user as UserValidate;use Exception;class user{ public function get() { try { ...

2019-09-04 16:11:24 246

原创 从零开始打造自己的PHP框架——第5章

目标实现类似于ThinkPHP框架的参数校验参数自动校验在\core\lib文件夹下新建文件Validate.php代码如下:<?phpnamespace core\lib;class Validate{ //参数验证规则 protected $rule = []; //参数验证失败返回的信息 protected $message = []...

2019-09-03 15:26:32 562

原创 从零开始打造自己的PHP框架——第4章

目标本篇,我们的目标有三个:调整项目结构加载配置类添加日志类调整项目结构app内包含ctrl控制器、模型modelconfig内包含全局配置文件。core内包含框架的核心文件。lib内包含第三方库。log内存放日志文件。加载配置类在core目录中,新建conf.php,内容如下:<?phpnamespace core\lib;class conf{...

2019-09-02 20:21:18 213

原创 从零开始打造自己的PHP框架——第3章

ComposerComposer 是 PHP5.3以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。本篇,我们...

2019-09-02 19:57:52 204

原创 从零开始打造自己的PHP框架――第2章

目标本篇,我们来实现类似与ThinkPHP的路由控制隐藏index.php在项目根目录下,添加.htaccess,内容如下:<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d Rewrit...

2019-09-02 19:41:39 225 1

原创 从零开始打造自己的PHP框架——第1章

目标本篇,我们来实现类库自动加载常规加载常规加载一般使用iinclude或者include_once,它们最根本的区别在于错误处理的方式不一样。include包括并运行指定文件。 include一个文件存在错误的话,那么程序不会中断,而是继续执行,并显示一个警告错误。include_once的作用和include_once几乎相同,唯一的差别在于导入之前会检查要导入的文件是否已经被导入过...

2019-09-02 19:22:31 567

原创 从零开始打造自己的PHP框架——第0章

框架运行流程1、入口文件2、定义常量3、引入函数库4、自动加载类5、启动框架6、路由解析7、加载控制器8、返回结果index.php<?php/** * 入口文件 * 1.定义常量 * 2.加载函数库 * 3.启动框架 */define('EA', $_SERVER['DOCUMENT_ROOT']); //框架所在目录define('CORE', EA...

2019-09-02 18:59:17 300

原创 实现Token身份权限体系(三)

继续对上节loginFail的结果进行处理,编写一个异常处理方法proccessLoginError和单发令牌grantToken方法(只所以写多一个方法是为了提高扩展性)。这里选择返回客户端,所以要一个自定义异常WeChatException异常。<?phpnamespace app\lib\exception;class WechatExcetion extends Bas...

2019-08-08 17:32:05 359

原创 实现Token身份权限体系(二)

我们知道code是要小程序向微信服务器请求的一个code码,使用的是wx.login接口。在小程序调用我们Token模型中的getToken接口时,并传入一个code码参数,之后我们的getToken接口接收该code参数后再携带code参数调用微信的接口来获取openid和session_key。我们将该微信接口地址写入配置文件中。在config目录下,创建wechat.php配置文件,写入...

2019-08-08 17:18:45 261

原创 实现Token身份权限体系(一)

新建一个Token控制器<?phpnamespace app\api\controller\v1;use think\Controller;class Token extends Controller{ public function getToken($code='') { }}编写路由,注意这里是post,传过来的cod...

2019-08-08 17:11:26 1380

原创 tp5.1定义API版本号

目录结构如图:路由如下:访问URL:http://localhost/api/v1/banner/1这样就只需要客户端调整修改v1或v2的参数就可以调用我们不同版本的控制器。扩展问题:为什么需要版本号?因为当我们的产品有新版本的时候,一些老的版本的接口我们可能就不再支持使用了,可以删除掉我们以前写的接口的代码,然后写新的代码,但是互联网产品一定要考虑对老版本的兼容性问题,有点用户是不...

2019-08-07 17:35:23 1328 1

原创 tp5.1 API 自定义全局异常处理(下)

tp5.1自带的错误页面是非常清晰的,而客户端的开发者需要一个简化的 json 信息,前面的上中两篇已经具体介绍了如何返回 json 信息,但是作为客户端开发我们还是希望使用 tp5.1 自带的错误页面来定位错误,这样如何调和呢?我们可以通过一个开关来进行操作,开关开的时候返回具体的包含错误信息的 html 页面,如果开关是关闭的我们就返回 json。现在我们来分析一下思路,我们通过自己写的 r...

2019-07-30 20:53:59 879

原创 tp5.1 API 自定义全局异常处理(中)

我们先来梳理一下异常的分类:tp5.1 有一个全局异常处理类,如果我们想自己实现上面的分类,需要覆盖和重写默认的全局异常处理类。我们现在在 api 模块的同级下新建一个 lib 文件夹,再新建一个 exception 文件夹。(我们想让这个 exception 里的类是一个通用的,可以供很多模块使用的一个类库。)新建 ExceptionHandler 的 php class,并继承 Ha...

2019-07-30 17:41:37 1754 1

原创 tp5.1 API 自定义全局异常处理(上)

我们接着重构 tp5.1 参数校验层的项目进行下面的演示。现在我们来假设这一种情况,客户端传来了 id 为 50,由于 50 是正整数,所以通过了参数校验,但我们的数据库中没有 id 号为 50 的user,这时候我们就需要进行相应的异常处理。注:在Restful API开发中,查询不到数据也可认为是异常...

2019-07-30 17:27:02 1023 3

原创 tp5.1重构参数校验层

例如我们现在 tp5.1 项目中有一个名为 User 的控制器。里面有一个需要传入 $id 的 getUserById 操作。现在需要对参数 $id 进行正整数校验,直白的做法马上就会映入我们的脑海,以下为伪代码:public function getUserById($id){ $validate = Validate::make([ 'id' => 'positiv...

2019-07-30 12:18:27 368

原创 Docker 部署LNMP环境

LNMP:Linux、Nignx、Mysql、PHP下载镜像到本地:[root@localhost lnmp]# docker pull php:5.6-fpm[root@localhost lnmp]# docker pull mysql:5.7[root@localhost lnmp]# docker pull nginx创建数据卷(路径:/var/lib/docker/vo...

2019-05-18 22:11:53 228

原创 Keepalived实现高可用

环境操作系统:CentOS7.6使用yum安装Keepalived:yum install keepalived查看当前使用的网卡:ip a,并记录下录前网卡修改配置文件:vi /etc/keepalived/keepalived.conf第一台CentOS配置如下:vrrp_instance VI_1 { state MASTER # 配置为主 interfa...

2019-05-05 15:29:32 137

转载 nginx全面解析【负载均衡、反向代理、高可用、宕机容错】

转载: https://blog.csdn.net/itcats_cn/article/details/82454657

2019-05-04 16:55:29 148

转载 centOS7安装Nginx

转载:https://www.cnblogs.com/kaid/p/7640723.html

2019-05-03 20:28:20 136

原创 mycat实现读写分离模式

转发:https://www.cnblogs.com/biglittleant/p/7059569.html

2019-05-03 14:40:48 171

原创 CentOS7安装mycat

转发:https://blog.csdn.net/dream_broken/article/details/77675569

2019-05-03 14:02:49 1598

转载 CentOS 7 yum 安装与配置 JDK

转载:https://blog.csdn.net/github_38336924/article/details/82221258

2019-05-03 13:10:47 99

原创 Mysql主从复制

一、主服务器(ip:192.168.1.112)修改mysql.cnf文件:vi /etc/my.cnf在[mysqld]下添加:log-bin=mysql-bin #开启二进制日志server-id=1 #设置server-id重启mysql,并登录mysql创建授权用户:grant replication slave on *.* to 'slave'@'%' iden...

2019-05-02 22:34:46 116

原创 CentOS7安装Mysql

在MySQL官网中查看YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/下载mysql安装源: wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm安装mysql源:yum localinstall mysql80-community-relea...

2019-05-02 21:16:25 194

原创 CentOS7解决连接慢问题

更改配置文件vi /etc/ssh/sshd_config找到UseDNS 将UseDNS前面的#删除,并将YES改为NO,若找不到UseDNS,则手动添加UseDNS,并将其设置成No保存并重启ssh:systemctl restart sshd...

2019-05-02 20:31:04 2461

原创 Mysql创建双主复制

操作环境操作系统:centos7.6数据库:mysql 5.71. 配置my.cnfcentos命令:vi /etc/my.cnf 打开编缉在[mysqld]下面添加以下代码数据库A:server-id=1log-bin=master-binlog-slave-updates=trueauto_increment_increment=2auto_increment_offs...

2019-05-02 11:28:48 248

空空如也

空空如也

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

TA关注的人

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