奇葩也是花

码农也是码
私信 关注
奇葩也是花
码龄7年

码农也是码

  • 131,043
    被访问量
  • 131
    原创文章
  • 37,470
    作者排名
  • 152
    粉丝数量
  • 于 2014-02-18 加入CSDN
获得成就
  • 获得53次点赞
  • 内容获得28次评论
  • 获得83次收藏
荣誉勋章
兴趣领域
  • #后端
    #MySQL#Java#PHP#Redis
TA的专栏
  • leetcode
    1篇
  • Vue
    34篇
  • 计算机基础
    1篇
  • Java
  • Java入门到放弃
  • php
    60篇
  • MYSQL
    6篇
  • 服务器
    19篇
  • NGINX
    3篇
  • 微信
    4篇
  • 其他
    6篇
  • 算法
    6篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Js 浮点型经度丢失问题

解决办法://js 加法计算//调用:accAdd(arg1,arg2)//返回值:arg1加arg2的精确结果function accAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} m=Math.pow(10,Math.m.
原创
10阅读
0评论
0点赞
发布博客于 6 天前

charles抓手机App的接口请求信息

1、安装charles下载地址:Charles下载地址安装过程:傻瓜式安装,下一步 – 下一步2、简单使用http抓http包相对比较简单,直接打开即可。不再赘述。httpshttps请求是密文的,抓去需要安装charles的证书。3、安装证书1、保存charles证书,help — ssl-proxy – save charles root certificate,点击之后,保存下来2、 打开charles,找到 help — ssl-proxy – install charl
原创
27阅读
0评论
0点赞
发布博客于 18 天前

LeetCode - 两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class ListNode{ public $val =
原创
10阅读
0评论
0点赞
发布博客于 20 天前

leetcode-两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:[1,2
原创
6阅读
0评论
0点赞
发布博客于 20 天前

update多条数据

UPDATE `cp_product_shop_relation` SET `sale_stock_number` =CASE `product_shop_relation_id` WHEN 2 THEN `sale_stock_number` - 1 WHEN 3 THEN `sale_stock_number` - 2 WHEN 4 THEN `sale_stock_number` - 3 END WHERE `product_shop_relation_
原创
18阅读
0评论
0点赞
发布博客于 1 月前

css 水平垂直居中(背景铺满)

#app{ height: 100%; width: 100%;}.login { background: url('../../assets/bg4.jpg') no-repeat; background-size: 100% 100%; height: 100%; width: 100%; display: flex; align-items: center; justify-content: center; .grid-content { backg
原创
31阅读
0评论
0点赞
发布博客于 1 月前

Openresty + Lua 实现服务网关(待续)

Openresty + Lua 实现服务网关OpenResty简单介绍OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。360,
原创
85阅读
0评论
0点赞
发布博客于 4 月前

Nginx生产Request-id

找到nginx的配置文件 fastcgi.conf 添加fastcgi_param X-REQUEST-ID $request_id if_not_empty;作用:服务之间调用时,可以获取到 X-REQUEST-ID 参数,传递到下一个服务中【通过header头方式传递到下一个服务】,方便微服务中排查问题。...
原创
152阅读
0评论
0点赞
发布博客于 4 月前

载入内存,让程序运行起来

如果你的电脑上安装了QQ,你希望和好友聊天,会双击QQ图标,打开QQ软件,输入账号和密码,然后登录就可以了。那么,QQ是怎么运行起来的呢?首先,有一点你要明确,你安装的QQ软件是保存在硬盘中的。双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的QQ软件,将数据(安装的软件本质上就是很多数据的集合)复制到内存。对!就是复制到内存!QQ不是在硬盘中运行的,而是在内存中运行的。为什么呢?因为内存的读写速度比硬盘快很多。对于读写速度,内存 > 固态硬盘 > 机械硬盘。机械
转载
60阅读
0评论
0点赞
发布博客于 4 月前

PHP-Curl提示Protocol “https“ not supported or disabled in libcurl

问题产生本地开发环境使用的是 MxSrvs ,Mac下还算好用的一个集成环境,官网: http://www.xsrvs.com/docs.html今天在使用的时候,使用CURL调用https接口的时候提示,Protocol “https” not supported or disabled in libcurl解决问题思路1、提示信息为 协议不支持或者被禁用,第一反应是看下自己的CURL是否开启,打印phpinfo之后,发现CURL扩展是开启的。2、发现CURL开启,没法请求https接口可能是
原创
253阅读
1评论
1点赞
发布博客于 4 月前

Mysql group by top n问题

创建表CREATE TABLE `score` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `course` varchar(20) DEFAULT NULL, `score` int DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;添加数据insert in
原创
62阅读
0评论
0点赞
发布博客于 5 月前

分布式事务的产生和解决

问题的产生服务化之后,整个系统拆分为多个服务,用户的一个操作,可能会设计到多个服务,而每个服务都是一个单独到数据库,可能是在不同的实例上,也有可能在不同的服务器上,这个时候如果要用到事务就比较麻烦,会设计到分布式事务。DEMO比如下订单,可能会设计到订单服务、商品服务器、购物车服务等,必须保证所有服务都能够成功调用,在没有分布式之前,我们可以直接用事务,把相关都操作都写到一个事务中,而分布式之后,则会设计到多个服务。这个时候,就必须要考虑分布式事务如何去实现了。解决方案:XA协议:XA分布式事务协
原创
53阅读
0评论
0点赞
发布博客于 5 月前

php-yield生成器

//对某一数组进行加权处理$numbers = array('nike' => 200, 'jordan' => 500, 'adiads' => 800);//通常方法,如果是百万级别的访问量,这种方法会占用极大内存function rand_weight($numbers){ $total = 0; foreach ($numbers as $number => $weight) { $total += $weight; .
原创
217阅读
0评论
0点赞
发布博客于 6 月前

猴子选大王-php

function King( $monkeys , $kill ){ while( count( $monkeys ) > 1){ echo '长度为'. count( $monkeys).'<br/>'; print_r($monkeys); echo '<hr/>'; foreach( $monkeys as $k => $v ){ if( $k % $kill == 2
原创
119阅读
0评论
0点赞
发布博客于 6 月前

微服务之服务熔断、服务雪崩、服务降级、服务限流

基本概念熔断的作用类似于我们家里用的保险丝,在用电量打的时候,会自动断开,保护我们整体的电路。服务熔断也被称为服务过载保护。问题的产生—服务雪崩在我们平时的业务场景中,分布式之后,可能会存在 服务A 调用 服务B ,服务B调用服务C。如果服务器C现在不可用了,会导致服务器B一直调用服务器C,从而导致服务B也不可以用。服务A和B的关系也是类似,也会因为服务B导致服务A不可用。出现这种情况之后,因为一个服务倒置整个系统都不可用,我们称之为 服务雪崩。解决雪崩服务降级 和 服务熔断 则可以解决
原创
225阅读
0评论
0点赞
发布博客于 6 月前

算法-两个数之和

给定一个数组和一个目标和,从数组中找两个数字相加等于目标和,输出这两个数字的下标。$arr = [2,7,11,15];function searchSum( $arr , $search ){ $arr2 = []; foreach( $arr as $k => $v ){ $number = $search - $v; if( in_array( $number ,$arr2)){ echo 'search'.'&
原创
97阅读
0评论
0点赞
发布博客于 6 月前

vue-elementui--按钮和提示信息的简单使用

<template> <div class="hello"> <el-alert v-if="show" title="点击提示成功的信息" description="这个框不用管他会自动消失的" show-icon center type="success"> </el-alert> <el-row>
原创
1099阅读
0评论
0点赞
发布博客于 6 月前

vue-elementui简单使用

elementui文档地址安装vuevue init webpack likang-demo安装element-ui npm i element-ui -S引入 Element在 main.js 中写入以下内容:import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';import App from './App.vue';Vue.use(ElementUI);找到Hello
原创
61阅读
0评论
0点赞
发布博客于 6 月前

阿里云-直播-生成推流地址

<?php#鉴权 URL 由直播推流地址或播放地址 + 验证串组成。验证串是根据鉴权 key + 失效时间通过 md5 算法计算出,该地址适用于 PC 端、移动端、第三方推流和播放工具。#鉴权 KEY 字段随机分配,也支持用户自定义。 # 有效时间 指用户访问客户源服务器时间超过自定义的时间(timestamp 字段指定)后,该鉴权失效。例如,有效时间为 1800s,用户设置访问时间:2020-08-15 15:00:00,链接真正失效时间是:2020-08-15 15:30:00。
原创
480阅读
0评论
1点赞
发布博客于 6 月前

Laravel 框架使用 PhpSpreadsheet处理Excel

PHPOffice是一个用来处理办公相关软件的php类库PhpSpreadsheet专门处理excle的类库引入类库composer require phpoffice/phpspreadsheet创建路由Route::get('/excel','test\TestController@excelReader');Route::get('/excel2','test\TestController@excelWriter');读取excelpublic functi..
原创
643阅读
0评论
1点赞
发布博客于 8 月前

Es操作类

<?phpinclude_once __DIR__ . '/Curl.class.php';/** * Es的操作类 * Class Es */class Es{ /** * Es查询的的索引 * @var string */ private $es_index = ''; /** * 要查询的字段 * @var string */ private $_fields = ''; /*
原创
85阅读
0评论
0点赞
发布博客于 8 月前

微信小程序-列表

//index.js//获取应用实例const app = getApp()var util = require("../../utils/util.js");Page({ data: { page:1, blog_list:[ ], height:0 }, //事件处理函数 bindViewTap: function() { wx.navigateTo({ url: '../logs/logs' }) }, onP
原创
98阅读
0评论
0点赞
发布博客于 8 月前

vue-项目开发-购物车Js效果

<template> <div class="hello"> <table border="1" cellpadding="0" cellspacing="0" width="100%"> <tr> <td> <input type="checkbox" v-model="all_select" @click="choseAll()"/> </td>
原创
150阅读
0评论
0点赞
发布博客于 9 月前

Vue-页面传值

父页面<template> <div class="hello"> {{msg}} <table border="1" cellpadding="0" cellspacing="0" width="100%"> <tr> <td>序号</td> <td>年级</td> <td>学生</td> .
原创
127阅读
0评论
0点赞
发布博客于 9 月前

Mysql查询全过程

客户端发送一个查询给服务器。服务器先检查查询缓存,如果命中,则直接返回缓存中的结果。如果没有没有命中,则进入下一阶段(解析器)。服务器由解析器检查sql语法是否正确,然后由预处理器检查sql中的表和字段是否存在,最后由查询优器生成执行计划。这一步很耗资源。mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。将结果返回给客户端。MySQL客户端和服务器之间的通信在mysql服务器和客户端之间的通信时“半双工”的。就是在同一时刻要么由客户向Mysql服务器发送数据,要么由My..
转载
185阅读
0评论
1点赞
发布博客于 9 月前

Mysql查询关键字附近的内容

SELECT SUBSTR( `content` , LOCATE('laravel',`content`) -20 , 60 ) from `mysql` where `content` like "%laravel%"
原创
100阅读
0评论
0点赞
发布博客于 10 月前

js-笛卡尔基

// 笛卡尔积算法 function descartes( list ) { //parent上一级索引;count指针计数 var point = {}; var result = []; var pIndex = null; var tempCount = 0; var temp = []; //根据参数列生成指针对象 for(var index .
原创
115阅读
0评论
0点赞
发布博客于 10 月前

php-调用阿里云第三方短信接口

去云市场找一个短信接口https://market.aliyun.com/products/56928004/cmapi023305.html?spm=5176.2020520132.101.7.791372187l0Zqa购买短信包找到自己的appcode,进入 管理控制台找到自己的appcode调用接口即可<?php $host = "http://dingxin.market.alicloudapi.com"; $path = "/dx/send..
原创
373阅读
0评论
0点赞
发布博客于 10 月前

高度不固定的div文字垂直居中

垂直居中:1653align-items:center; display: -webkit-flex;水平居中:justify-content:center; display: -webkit-flex;
原创
331阅读
0评论
0点赞
发布博客于 10 月前

php-根据身高排序,在根据重量排序

$one = [ 'one' => [ 'height' => 175 , 'weight' => 50 ]];$two = [ 'two' => [ 'height' => 172 , 'weight' => 60 ]];$three = [ 'three' => [ 'height' => 172, 'wei.
原创
233阅读
0评论
0点赞
发布博客于 10 月前

php-gd2 生成图片-限制每行字数

$str = 'aa212asda萨达aa212asda萨达aa212asda达';$len = mb_strlen( $str );$arr = [];$sum = 0 ;$max_width = 100;$number_px = 5;$English_px = 5;$chinese_px = 10;$all = '';for( $i = 0 ; $i < $len ; $i ++ ){ $char = mb_substr( $str ,$i , 1 ); if(
原创
119阅读
0评论
0点赞
发布博客于 10 月前

vue-项目-MiXin(commonjs)

export default { methods: { gotoPage: function ( page_name ) { this.$router.push( { name:page_name } ); }, ajaxPost:function ( url , data ) { return this.$http.post( url , data ).then( (response) =>{ return response.bo
原创
201阅读
0评论
0点赞
发布博客于 10 月前

vue-项目-抽象tabbar

<template> <div> <div class="height1"></div> <div class="footNav"> <dl> <a href="javascript:;" @click="gotoPage('Index')"> <dt><span class="glyphicon glyphicon-home">&l
原创
63阅读
0评论
0点赞
发布博客于 10 月前

vue-项目-商品详情

<template> <div class="maincont"> <header> <a href="javascript:history.back(-1)" class="back-off fl"><span class="glyphicon glyphicon-menu-left"></span></a> <div class="head-mid"> <h1>
原创
262阅读
0评论
0点赞
发布博客于 10 月前

vue-实现商品列表(列表+刷新+筛选)

<template> <div class="maincont"> <header> <a href="javascript:history.back(-1)" class="back-off fl"><span class="glyphicon glyphicon-menu-left"></span></a> <div class="head-mid"> &l
原创
1856阅读
0评论
0点赞
发布博客于 10 月前

vue-首页

<template> <div class="maincont"> <div class="head-top"> <img src="@/assets/images/head.jpg" /> <dl> <dt> <a v-if="is_login" href="user.html"> <img :src="user_info
原创
139阅读
0评论
0点赞
发布博客于 10 月前

vue-项目-实现登陆

<template> <div class="maincont"> <header> <a href="javascript:history.back(-1)" class="back-off fl"><span class="glyphicon glyphicon-menu-left"></span></a> <div class="head-mid"> &l
原创
122阅读
0评论
0点赞
发布博客于 10 月前

vue-项目-实现注册-(验证码+倒计时+短信发送)

<template> <div class="maincont"> <header> <a href="javascript:history.back(-1)" class="back-off fl"><span class="glyphicon glyphicon-menu-left"></span></a> <div class="head-mid"> &l
原创
851阅读
0评论
0点赞
发布博客于 10 月前

TP5重写规则-区分前台台-admin.php和index.php

server { listen 80; server_name shop.phpclub.top; access_log /data/wwwlogs/access_nginx.log combined; root /data/wwwroot/default/1805/tp5/public; autoindex on; index index.html index.htm index.php; #error_page 404 /404.html;
原创
236阅读
0评论
0点赞
发布博客于 10 月前

Js-promise

<script> // function callback() { // console.log('Done'); // } // console.log('before setTimeout()'); // setTimeout(callback, 3000); // 1秒钟后调用callback函数 // console.log('after setTimeout()'); function callback(){ // P
原创
83阅读
0评论
0点赞
发布博客于 10 月前

vue-linux下挂后台运行

linux下如果需要把vue项目挂到后台可以使用nohupnohup npm run dev >> ./vue.log & 实际在使用的时候发现,断开xshell之后会自动关闭项目。如果要挂后台可以在这个命令基础上加上exit,这样就可以了nohup npm run dev >> ./vue.log & exit...
原创
1138阅读
0评论
1点赞
发布博客于 10 月前

js插件cropper解决接口开发访问图片出现跨域问题

问题:在使用jQuery jscroper组件的时候,会自动把其他域名下的图片请求转换成跨域的请求,如果想要设置允许访问,可以设置图片运行通过其他域名访问 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { add_header Access-Control-Allow-Origin 'http://h5.phpclub.top'; expires 30d; access_log off; }
原创
664阅读
0评论
0点赞
发布博客于 10 月前

vue-项目部署到Nginx服务器

vue项目开发完成之后 需要把代码部署到web服务器上,此处以Nginx为例找到你的项目目录,执行以下代码 npm run build 对vue项目进行打包,没有问题的话,会提示 Build complete.[root@izm5e331c21uktboqzfrvqz likang-demo]# npm run build> likang-demo@1.0.0 build /data/wwwroot/vue/likang-demo> node build/build.js⠸
原创
361阅读
0评论
0点赞
发布博客于 10 月前

vue-watch和computed

computed:计算属性,它会根据数据动态显示新的计算结果。watch: 监听数据的改变。一个数据需要被监听并且对数据做一些操作就用 watch计算属性DEMO:new Vue({ el: '#id', template: `<div> <span>Name: {{name}}<span> </div>`, data: { firstName: 'Leo', lastNam
原创
140阅读
0评论
0点赞
发布博客于 11 月前

vue-抽象公共方法以及调用

在实际项目中,可能很多的代码需要服用,这样的话就要求我们把公共的部分抽象出来,Vue中可以使用mixin把公用的代码抽象出来Mixin模式,混合模式。这是一种不用继承就可以复用的技术。主要还是为了解决多重继承的问题。多继承的继承路径是个问题。JS是基于对象的,类和对象都是对象模板。混合mixin,指的是将一个对象的全部或者部分拷贝到另一个对象上去。其实就是属性了。可以将多个类或对象混合成一个类或对象。1、创建名字为mixin的文件夹,用来写一些公共的方法在src目录下创建 mixin的路径,用
原创
504阅读
0评论
0点赞
发布博客于 11 月前

Vue-登陆实现

<template> <div class="hello"> // 给my-header组件传递参数 title 组件名字为myHeader 但是在template调用的时候要写为 my-header <my-header title="LIKANG TEST"></my-header> 手机号:<input type="text " v-model="user_name"/><br/> 密码:&l
原创
138阅读
0评论
0点赞
发布博客于 1 年前

Vue-请求数据渲染页面

1、前边说到ajax请求的发送,今天要实现的是页面加载完成之后,渲染出列表的数据2、首先新建一个GoodsList.vue ,加入一下HTML内容<template> <div class="hello"> <h1>{{title}}</h1> <ul> <li v-for="(v,k) in goodsList" :key="k"> <div style="border:1px
原创
1695阅读
2评论
0点赞
发布博客于 1 年前

vue-发送Ajax请求

1、使用Vue开发的时候,肯定要使用到ajax去服务端请求数据。这个时候就需要用到AJAX发送请求到服务端,Vue项目内置了对http的支持,2、使用http请求执行需要先添加对应用到的类库,找到src目录下的 main.js ,添加一下内容// 引入http请求相关类库import VueResource from 'vue-resource'//使用http请求相关类库Vue.use(VueResource)// 确保post请求不会被转换为 options 请求Vue.http.opti
原创
618阅读
0评论
0点赞
发布博客于 1 年前

Vue-表单元素绑定

1、添加表单元素// 文本框 输入的内容绑定到 name<input type="text" v-model="name"/>// 下拉框 - 数据从data的 tt 中读取 选择的结果绑定到 select_value<select v-model="select_value"> <option value="0">请选择</option> <option v-for="(v,k) in tt" v-bind:key="k" :v
原创
193阅读
0评论
0点赞
发布博客于 1 年前

vue-v-bind绑定属性到元素

// HTML 通过v-bind给div绑定颜色<div v-bind:style="‘color:'+rand_color+"> 这里是测试的内容</div><button @click="changeColor()">点击切换颜色</button>//通过v-bind给div绑定样式,指向JS中 data下的my_class ,也就是给改div指定了main的样式<div v-bind:class="myclass"> 这里是
原创
286阅读
0评论
0点赞
发布博客于 1 年前

vue-vmodel数据的双向绑定

1、没有出现双向绑定之前( 1 ) 在没有出现数据双向绑定之前,我们一般要更新页面的数据,需要找到节点,修改节点的数据,拿Jquery举例:// HTML代码<div id='ele'>我是要修改的值</div>//Js代码 Jq写法let msg = '我是要修改的值';$('#ele').val(msg);这样的代码相对还是比较简单,如果我们要实现一个用户输入给出对应提示。相对就比较麻烦了。// HTML代码<div id='notice'>这
原创
162阅读
0评论
0点赞
发布博客于 1 年前

vue-数据遍历-IF判断

1、在js代码中的data节点中,定义一个数据<script>export default { name: 'HelloWorld', show_div: true, data () { return { title: 'test title' list: [ { id: 1, name: 'likang' }, { id: 2, nam
原创
1122阅读
0评论
0点赞
发布博客于 1 年前

双向绑定原理

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>原生js实现简单的双向数据绑定</title></head><body><input type="text" id="userName"><span id ="uName"></span><script> var
转载
114阅读
0评论
0点赞
发布博客于 1 年前

Vue-页面跳转2

1、页面添加a标签 <div> <a href="javascript:;" @click="gotoList()" >跳转页面</a> </div>其中需要把a标签href 修改为 javascript:;@click代表给a标签绑定点击时间 调用gotoList方法2、对应js代码export default { name: 'HelloWorld', data () { return { },
原创
179阅读
0评论
0点赞
发布博客于 1 年前

vue-页面跳转-router-link

1、Vue项目新建成功之后,打开src的目录。src目录是我们要写代码的目录assets 目录 用来存放一些静态资源components 目录 用来存放我们的组件,我们要写的代码基本都在这个目录下,新建的vue页面都放在这个目录下router 目录 目录下index.js 是我们的路由文件,规定了项目中可以访问的路由App.vue 是我们的核心文件,可以理解为入口文件main.js 核心js文件,在这个文件初始化了Vue2、新建成功之后,默认会产生一个 HelloWorld.vue,而且
原创
375阅读
0评论
0点赞
发布博客于 1 年前

vue-目录介绍

── v-proj| ├── node_modules // 当前项目所有依赖,一般不可以移植给其他电脑环境| ├── public| | ├── favicon.ico // 标签图标| | └── index.html // 当前项目唯一的页面| ├── src| | ├── assets // 静态资源img、css、js| | ├── components // 小组件
转载
155阅读
0评论
0点赞
发布博客于 1 年前

vue-创建一个vue项目

统一管理,把vue的内容全部放到指定的目录[root@izm5e331c21uktboqzfrvqz vue]# mkdir -p /data/wwwroot/vue && cd /data/wwwroot/vue 使用npm安装vue,需要用到vue和vue-cli[root@izm5e331c21uktboqzfrvqz vue]# cnpm install vue vue-cli -g# -g 安装之后全局可以使用创建一个基于vue的项目# 敲完命令之后一堆.
原创
924阅读
0评论
0点赞
发布博客于 1 年前

Linux下安装Cnmp

国内下载nodejs模块可能会很慢,也有可能失败,为了保证下载效率,可以使用 cnpm加速访问。【和composer镜像原理一样】安装文档可参考:https://developer.aliyun.com/mirror/NPM?from=tnpm# 使用npm安装 cnpm[root@izm5e331c21uktboqzfrvqz vue]# npm install -g cnpm --registry=https://registry.npm.taobao.org[...............
原创
612阅读
0评论
0点赞
发布博客于 1 年前

vue-nodejs-nvm安装

NVM:nvm:nodejs 版本管理工具。在开发和测试中可能会用到多个版本的nodejs,nvm专门用来坐nodejs版本的管理,可以实现nodejs的切换。nvm github地址:https://github.com/nvm-sh/nvmhttps://github.com/coreybutler/nvm-windows安装下载安装的脚本,并且安装nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/insta
原创
593阅读
0评论
0点赞
发布博客于 1 年前

阿里云访问raw.githubusercontent.com提示无法访问的问题

今天去下载东西的时候,访问raw.githubusercontent.com无法正常访问原因是因为没法找到对应的ip,打开服务器的 hosts文件vim /etc/hosts# 添加这一行内容199.232.68.133 raw.githubusercontent.com保存退出,继续ping一下试试。[root@aliyun vue]# ping raw.githubusercontent.comPING raw.githubusercontent.com (199.232.68.133)
原创
2012阅读
0评论
1点赞
发布博客于 1 年前

Vue-Linux下Nodejs环境安装

Nodejs官网Nodejs官网下载Nodejs下载Nodejs文档地址Nodejs 文档Linux 安装Nodejs二进制安装:下载nodejs的安装包,放到指定的目录下# 把NodeJs的包下载下来,放到home/package下方便后期查找mkdir -p /home/package && cd /home/package wget https:...
原创
564阅读
0评论
0点赞
发布博客于 1 年前

vue-常见名词解析

Nodejs【菜鸟教程解释】简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。Vue和NodejsNodejs :nodejs是js...
原创
351阅读
0评论
0点赞
发布博客于 1 年前

单页应用的原理

<a href="#index">Index</a><a href="#list">List</a> <h1 id="main"></h1>};/** * 单页应用原理: * 只有 # 后面的 fragment 发生改变时,页面不会重新请求,其他参数发生变化,都会引起页面的重新请求。 * window.onh...
原创
181阅读
0评论
0点赞
发布博客于 1 年前

vue基本认知

一、wap站的普及随着移动端的普及,很多的wap(h5)应用出现了,手机站、公众号等,普通网页的缺点:(1)点击链接或者按钮整个页面刷新(2)Js css请求很多,加载时间较长二、传统web/wap页面特点:做操作的时候,会引起整个页面的刷新,页面刷新之后都会重新加载所有的js 和 css。【加载速度慢,页面刷新体验差】点击 超链接提交表单js使用 location.href...
原创
355阅读
0评论
2点赞
发布博客于 1 年前

API接口防刷

接口防刷通过Redis进行限制。实现思路:1、用户在访问接口的时候,获取用户的ip $request -> ip();2、把ip作为key,访问次数作为对应的值,每次访问接口累加访问次数即可。 【注意一个问题:key的有效期是1分钟,必须是第一次写入的时候 指定1分钟的有效期】3、下一次访问的时候,判断是否超过100次,如果超过的,吧ip加入黑名单中半个小时。 【用的数据...
原创
566阅读
0评论
0点赞
发布博客于 1 年前

接口鉴权+接口签名

接口鉴权的实现【 微信公众号中,不同类型的公众号有不同的权限。 】如何实现:借助了appid和appsecret。接口如何实现鉴权?1、给每个客户端下发一个appid和appsecret2、接口端给每个客户端设置不同的权限3、客户端请求接口的时候,接口端根据客户端传递的appid,找到客户端对应的权限4、判断用户是否具备调用该接口的权限。为什么要做接口签名?防止数据被篡改...
原创
480阅读
0评论
1点赞
发布博客于 1 年前

阿里云-https域名

阿里云SSL证书:https://www.aliyun.com/product/cas?spm=5176.10695662.1171680.1.3ae471e9PbKw4o点击购买,选择免费型即可。# Https:完整配置server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name ...
原创
128阅读
0评论
0点赞
发布博客于 1 年前

Https

中间人攻击:http请求传输信息是明文,这个信息有可能被某个中间人恶意截获甚至篡改。这种行为就叫做中间人攻击。https:使用的是非对称加密和对称加密客户端和服务端协商对称加密的秘钥的时候,使用的是非对称加密协商好之后,后续的通讯都是对称加密 【为了保证效率,后续都使用对称加密 】 【 不同的客户端的加密算法和秘钥不同的 】CA证书:权威的证书颁发机构(CA)各大浏览器和...
原创
77阅读
0评论
2点赞
发布博客于 1 年前

微信小程序接口地址管理

1、在Utils新建一个Api.jsconst api_url = 'https://api.phpclub.top/';const ApiList = { "login" : api_url + 'login.php'};module.exports.ApiList = ApiList2、使用// 在Js中包含文件var ApiList = require('utils/...
原创
619阅读
0评论
0点赞
发布博客于 1 年前

解决微信小程序onLaunch与onload执行顺序问题

问题产生:准备使用微信小程序去获取openid,把获取openid的代码写在app.js的onlaunch中。想在后续的页面中使用openid,结果在页面中打印出来显示是和预期的不太一样:// APP.JSvar ApiList = require('utils/api.js');App({ onLaunch: function () { // // 展示本地存储能力 ...
原创
4664阅读
3评论
0点赞
发布博客于 1 年前
关于nginx不支持PATHINFO问题的解决
发布Blink于 1 年前

Centos7修改IP地址

Centos7修改IP地址一、进入网络配置文件目录首先,确保在root用户下进行操作。进入网络配置文件network-scripts目录下。[root@localhost /]# cd /etc/sysconfig/network-scripts/二、找到我们需要修改的配置文件使用ls命令,列出该目录下的文件。其中“ifcfg-ens33”的文件,为我们需要修改的网络配置文件。三、...
转载
241阅读
0评论
1点赞
发布博客于 1 年前
CGI、FSATCGI、php-fpm、phpcgi
发布Blink于 2 年前

Nginx配置虚拟主机(配置域名)

Nginx配置虚拟主机(配置域名)1、打开Nginx的配置文件,配置文件在Nginx的安装目录下的conf文件在Http端内添加一下配置,包含conf.d下后缀名为conf的文件(注意位置不要写错了),和http端内,和server平级http{ server{ } # 包含conf.d目录下以conf结尾的文件 include conf.d/*.con...
原创
339阅读
1评论
1点赞
发布博客于 2 年前

系统架构设计中,如果做好“限流”?(转)

什么是服务限流让我们先看一看系统架构设计中,为什么要做“限流”。旅游景点通常都会有最大的接待量,不可能无限制的放游客进入,比如故宫每天只卖八万张票,超过八万的游客,无法买票进入,因为如果超过八万人,景点的工作人员可能就忙不过来,过于拥挤的景点也会影响游客的体验和心情,并且还会有安全隐患;只卖N张票,这就是一种限流的手段。软件架构中的服务限流也是类似,也是当系统资源不够的时候,已经不足以应对大...
转载
131阅读
0评论
0点赞
发布博客于 2 年前

Laravel的生命周期

1、首先加载index.php入口文件2、通过composer加载 bootstrap/app.php获取laravel实例3、创建一个服务容器4、加载http内核 kernel.php5、内核定义所有请求都经过http中间件,6、内核生成request和response,request把请求交给路由7、路由分发给控制器和方法,同时运行指定的中间件...
原创
142阅读
0评论
1点赞
发布博客于 2 年前

PHP + SWOOLE 实现弹幕功能

HTML + JS: 【网上找到弹幕代码】<meta charset="utf-8"/><div class="container"> <div id="content" class="content"> <img src="./1.png"/> </div> <div class="...
原创
366阅读
0评论
1点赞
发布博客于 2 年前

MYSQL 8.0修改密码,navicat连接

今天下了个 MySQL8.0,发现Navicat连接不上,总是报错1251;原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错。试了很多种方法,终于找到一种可以实现的:  更改加密方式  1.先通过命令行进入mysql的root账户:PS C:\Windows\system32> mysql -uroot -p  再输入root的密码:...
原创
1194阅读
0评论
1点赞
发布博客于 2 年前

(转)适配器模式

在这个有没有对象都要高呼“面向对象”的年代,掌握面向对象会给我们带来意想不到的方便。学编程的小伙伴从开始能写几行代码实现简单功能到后来懂得将一些重复的操作组合起来形成一个“函数”,再到后来将“函数”和属性组合起来形成一个“类”。一步步走来,我们在考虑着机器运行代码效率的提高的同时也在考虑减轻程序员的工作量。 那么我们今天讲到的适配器模型更着重考虑的是什么呢?是程序员工作量。  什么时候会用到适...
转载
119阅读
0评论
1点赞
发布博客于 2 年前

前后端分离 -- 跨域 -- 解决

header("Access-Control-Allow-Origin:http://a.com");//允许a.com发起的跨域请求 //如果需要设置允许所有域名发起的跨域请求,可以使用通配符* header("Access-Control-Allow-Origin:*");//允许任意域名发起的跨域请求 header('Access-Control-Allow-...
原创
165阅读
0评论
1点赞
发布博客于 2 年前

Elastic Search 7.0 添加数据提示 提示503错误

Elastic Search成功安装完毕。测试数据添加出现{ "error": { "root_cause": [ { "type": "cluster_block_exception", "reason": "blocked by: [SERVICE_UNAVAILABL...
原创
2591阅读
1评论
1点赞
发布博客于 2 年前

LDAP安裝

LDAP简介:  LDAP(Lightweight Directory Access Protocol)的意思是"轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Servers)的协议。这里所谓的"目录"是指一种按照树状结构存储信息的数据库。这个概念和硬盘上的目录结构类似,不过LDAP的"根目录"必须是"The world",并且其一级子目录必须是"countries"...
原创
174阅读
0评论
0点赞
发布博客于 2 年前

php 安装imap扩展

yum -y install krb5-devel libc-client libc-client-develln -sv /usr/lib64/libc-client.so /usr/lib/libc-client.socd ext/imap/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bi...
转载
4180阅读
0评论
0点赞
发布博客于 2 年前

php安装提示 iconv

编译php7报错解决办法:collect2: error: ld returned 1 exit statusmake: *** [sapi/cli/php] Error 1建立软链接ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/再执行Makemake ZEND_EXTRA_LIBS='-licon...
原创
569阅读
0评论
0点赞
发布博客于 2 年前

HTTPS 工作原理

1、浏览器发起往服务器的 443 端口发起请求,请求携带了浏览器支持的加密算法和哈希算法。 2、服务器收到请求,选择浏览器支持的加密算法和哈希算法。 3、服务器下将数字证书返回给浏览器,这里的数字证书可以是向某个可靠机构申请的,也可以是自制的。 4、浏览器进入数字证书认证环节,这一部分是浏览器内置的 TSL 完成的: 4.1 首先浏览器会从内置的证书列表中索引,找到服务器下发证书对应的机构...
转载
203阅读
1评论
2点赞
发布博客于 2 年前

微信扫码支付,公众号支付

&lt;?php# 微信统一下单接口$url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';$param = [ 'appid' =&gt; '公众号id', 'mch_id' =&gt; '商户id', 'nonce_str' =&gt;uniqid(), 'sign_type' =&gt;...
原创
1067阅读
1评论
5点赞
发布博客于 2 年前

微信小程序支付-小程序代码+php

小程序获取用户的openid,在app.js保存下openid//app.jsApp({ onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', log...
原创
330阅读
0评论
0点赞
发布博客于 2 年前

linux 二进制安装多个mysql示例

先下载mysql的源码包,去官网找到要安装的版本,下载下来,现在安装的是5.6的mysql,在home下新建一个package的目录,执行下载命令。wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz解压文件tar -zxvf mysql-5.6....
原创
298阅读
0评论
1点赞
发布博客于 2 年前

laravel 子域名划分模块

1、在本地配置2个域名 admin.laravel.com、www.laravle.com ,域名目录都指向 laravel框架的public目录。 配置host文件把域名指向本地 【 域名可以自定义】2、设置routes下的web.php,设置路由组前台访问Index下的控制器,后台访问Admin//前台路由组Route::group(['domain' =&gt; 'www.la...
原创
2247阅读
0评论
0点赞
发布博客于 3 年前

laravel 5.7 设置admin和home 模块

1、找到route下的web.php,把前后台设置路由组。//前台路由组 控制器在 "App\Http\Controllers\Home" 命名空间下Route::group(['namespace' =&gt; 'Index'], function(){ // 默认访问index控制器下的index方法 Route::get('/', [ 'as' =&...
原创
2239阅读
0评论
0点赞
发布博客于 3 年前

接口---redis防刷

/**     * 防止接口恶意调用     */    public function checkRequest(){        # 一分钟调用接口不能超过10次        $limit = 10;        $time = 10;        $this -&gt; redis -&gt; select(12);        $ip = request(...
原创
930阅读
0评论
1点赞
发布博客于 3 年前

订单号生成--相关

以下故事仅供参考:#############################################################################################你是个程序员。隔壁老王通过你老婆找到你,说要做个"巨牛逼电商网站",并许诺给你股份若干,你想想首付也攒了好久,就差200万就够了,于是就同意了,你花了一个星期做了一个网站并上线运营,订单...
转载
1084阅读
3评论
0点赞
发布博客于 3 年前

观察者模式

 &lt;?php// 主题接口interface Subject{ public function register(Observer $observer); public function notify();}// 观察者接口interface Observer{ public function watch();}// 主题class Action...
转载
227阅读
0评论
0点赞
发布博客于 3 年前

工厂模式

&lt;?php# https://blog.csdn.net/u010412301/article/details/54925217############################################简单工厂模式#################################################### 也叫静态工厂模式interface IDb{  ...
原创
277阅读
0评论
0点赞
发布博客于 3 年前

腾讯云搭建https域名

1、先去腾讯官网申请一个免费的证书,下载下来传到服务器端 2、找到nginx配置文件,加入一下配置下 【http内】 server { listen 443; # 默认端口443 server_name www.94phper.com; # 自己的域名 root /var/www/html/https; # 访问的路径 ...
原创
1983阅读
0评论
0点赞
发布博客于 3 年前

数字和字母不同分割符分割

# 123abcd345adsd 转换为 123:abcd 345:adsd$str = '123abcd345adsd1';$len = strlen( $str );$i = 0;$new = '';while( 1 ){ # 判断截取的是什么类型的 if( is_numeric( $str[$i] ) ){ $type = 1; ...
原创
919阅读
0评论
0点赞
发布博客于 3 年前

php自定义字符串查找,根据权重插入数组

# 查找字符串出现的位置$str = 'abcdadasdgabcdadasdg';$search_str = 'asd';$len = strlen( $str );$j = 0;$s_len = strlen( $search_str );for( $i = 0 ; $i &lt; $len ; $i++ ){ if( $str[$i] == $search_...
原创
250阅读
0评论
0点赞
发布博客于 3 年前

HTTPS协议-2

我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容如何做到真正的安全?这个问题,很多人马上就想到了各种加密算法,什么对称加密、非对称加密、DES、RSA、XX、噼里啪啦~而我想说,加密算法只是解决方案,我们首先要做的是理解我...
转载
102阅读
0评论
0点赞
发布博客于 3 年前

HTTPS协议

HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来...
转载
141阅读
0评论
0点赞
发布博客于 3 年前

设计模式--注册树模式

&lt;?php# 注册树模式class Register{ private static $tree = []; public static function set( $name , $object ){ $name = strtolower( $name ); self::$tree[$name] = $object; ...
原创
254阅读
0评论
0点赞
发布博客于 3 年前