自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冯先生

一生要做浪漫极客

  • 博客(53)
  • 收藏
  • 关注

转载 PHP—【websocket】

一、socket协议的简介WebSocket是什么,有什么优点WebSocket是一个持久化的协议,这是相对于http非持久化来说的。举个简单的例子,http1.0的生命周期是以request作为界定的,也就是一个request,一个response,对于http来说,本次client与server的会话到此结束;而在http1.1中,稍微有所改进,即添加了keep-alive,也就是在一个http连接中可以进行多个request请求和多个response接受操作。然而在实时通信中,并没有多

2022-03-16 09:16:48 3232

原创 .net安装

1、下载编辑器jetbrains rider 2021.1 附安装教程 - 哔哩哔哩2、安装对应的.net frameworkJetbrains Rider:缺少.NET Framework 4.5.2 - BigBosscyb - 博客园3、运行项目

2021-10-26 11:19:37 890

原创 php storam

如果你的电脑无法上网,这时候就需要手动下载 重置插件 并安装重置插件下载链接:百度网盘 请输入提取码 密码:zsq2下载上面的插件后,可直接将下载的 zip压缩包拖入 软件的 工作界面区 即可提示重启表示安装插件已经成功如果没有提示重启表示没有安装成功,则可以手动添加:在 Settings/Preferences... -> Plugins 里手动安装插件(Install Plugin From Disk...)...

2021-09-29 14:34:59 197

原创 Git仓库迁移保留commit log 日志

1、建立新仓库 1.1从原地址克隆一份裸版本库,比如原本托管于 GitHub,或者是本地的私有仓库git clone --barehttps://gitee.com/yang-xinpeng/training-one-font.git1.2然后到新的 Git 服务器上创建一个新项目,比如 GitCafe,亦或是本地的私有仓库.比如下图(j1.3然后用命令将克隆的裸板本库 push --mirror到新的仓库中git push --mirrorhttps://gite...

2021-09-28 16:43:07 2204

原创 picker中普通选择器selector获取objectarray中自定义id的获取问题

wxml<picker range='{{objectArray}}' value='{{index}}' bindchange="Change" range-key="name"> <view class='picker'>{{objectArray[index].name}}</view></picker>wxjsPage({ data:{ objectArray: [{ name: 'key1', id: 20 }, { .

2021-09-26 16:06:39 380

原创 php中实现7天免登录功能,防止cookie欺骗

1、免登录思路用户选择七天免登录按钮,后端根据用户提交的用户名和密码查询到用户的id将用户id存入cooike中并设置七天的过期时间。在不清除cookie信息(非正常退出的时候),后台帮助用户登录。实际就是利用cooki实现。2、验证登录文件:checkLogin.php<?phpheader('content-type:text/html;charset=utf-8');require './config.php';$username = $_POST['unam...

2021-09-25 11:59:04 1442 1

原创 PHP房贷计算器算法

<?php function debx() { $dkm = 12; //贷款月数,20年就是240个月 $dkTotal = 2000; //贷款总额 $dknl = 0.049; //贷款年利率 $emTotal = $dkTotal * $dknl / 12 * pow(1 + $dknl / 12, $dkm) / (pow(1 + $dknl / 12, $dkm) - 1); //每月还款金额 $lxTotal = 0; //总利息.

2021-09-22 20:56:16 989

原创 PHP字符串处理函数

<?php//字符串截取$str = "2439775595@qq.com";echo "@出现在".substr($str,10,1);//字符串变星星$pho = "15553242780";echo "<br>";echo substr_replace($pho,"****",3,4);echo "<br>";//字符串daopaiecho strrev($str);?>...

2021-09-22 20:54:25 73

原创 有趣的代码

1、猜猜会输出什么<?phpclass a{ function __construct(){ echo "echo class a something"; }}class b extends a{ function __construct(){ echo "echo class b something"; }}$a = new b();

2021-09-22 20:48:27 83

原创 小程序/Html5/Vue实现全景图播放功能

目录方案一:使用小程序全景图插件方案二:Html5全景图方案三:Vue组件展示 全景图,适用Vue项目(H5,PC都可以)小程序/Html5/Vue 实现全景图播放功能三种方案,分别适用小程序项目 H5项目 Vue项目,请根据项目场景选择合适方案展示全景图方案一:使用小程序全景图插件注意事项:建议插件使用2.0.3版本,全景图分辨率控制在2048*1024文档地址:https://mp.weixin.qq.com/wxopen/plugindevdocappid=wx38

2021-09-22 19:30:02 3495

原创 rabbitmq和kafka的区别

作为消息队列来说,企业中选择mq的还是多数,因为像Rabbit,Rocket等mq中间件都属于很成熟的产品,性能一般但可靠性较强,而kafka原本设计的初衷是日志统计分析,现在基于大数据的背景下也可以做运营数据的分析统计,而redis的主要场景是内存数据库,作为消息队列来说可靠性太差,而且速度太依赖网络IO,在服务器本机上的速度较快,且容易出现数据堆积的问题,在比较轻量的场合下能够适用。RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高...

2021-09-19 15:22:13 754

原创 Mysql常见的日志种类及作用

1.redo 重做日志  作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,达到事务一致性2.undo 回滚日志  作用:保证数据的原子性,记录事务发生之前的一个版本,用于回滚,innodb事务可重复读和读取已提交 隔离级别就是通过mvcc+undo实现3.errlog 错误日志  作用:Mysql本身启动,停止,运行期间发生的错误信息4.slow query log 慢查询日志  作用:记录执行时间过长的sql,时间.

2021-09-19 15:17:14 1043

原创 微信小程序密码输入框

<view catchtap='showInputLayer' class="btn_pay">立即支付</view><!-- 密码输入框 --><view wx:if='{{showPayPwdInput}}'> <view class='bg_layer'></view> <view class='input_main'> <view class='input_title'&g.

2021-09-16 18:35:18 763

原创 远程redis开启外网访问(宝塔)

一、腾讯云服务器放开安全组端口二、宝塔面板安装redis并放行6379端口三、查看redis扩展,修改扩展参数说明:1、bind连接Ip 改为0.0.0.0 2、requirepass foobared 的 foobared 改为自己需要设置的Redis密码四、连接成功...

2021-09-01 18:46:55 1666

原创 php封装curl

/** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method * @param array $header * @param bool $https * @param int $timeout * @return mixed */function curl_request($url, $data=null, $method='get', $he..

2021-08-31 09:07:31 371

原创 uni-app导航栏切换

给每一个nav_title加一个click点击事件,并传一个具体形参;(当然跟着移动的下划线是伪元素写的) 在methods里this.isActive = 形参,然后在 :class="{'active':isActive==1}"条件显示; 在nav_item,做一个v-if="isActive==1" <template> <view> <!-- nav --> <view class="nav"> <view .

2021-08-30 20:21:02 823

原创 docker---nginx

取最新版的 Nginx 镜像docker pull nginx:latest运行容器docker run --name nginx-william -p 8080:80 -d nginx

2021-08-27 11:29:25 71

原创 三次握手和四次挥手

首先: 无论多少次握手都不能满足传输的绝对可靠,TCP的核心思想:保证数据可靠传输其次:保证传输效率。一、为什么要握手(为什么不是2次握手)?为了保证传输的可靠。第一次握手CLIENT告诉SERVER“我将要开始传输数据了”。第二次握手SERVER告诉CLIENT“我已经知道你将要传输数据了,我已经做好准备”。第三次握手CLIENT告诉SERVER“我已经知道你已经知道'我知道你已经做好准备'”,SERVER端收到这个信号,开始传输数据。但是此时CLIENT并不知道SERVER已.

2021-08-26 14:14:50 68

原创 静态类语言和动态类语言

静态语言:  变量的类型在编译之前就需要确定,在编译的时候需要先编译,将源码转换成目标代码,然后需要运行目标代码程序才能运行,比如C++、Java、Delphi、C#。动态语言:  不需要直接指定变量类型,在解释的时候,转换为目标代码和运行程序一步到位,比如PHP、Python、Ruby、Perl。可以在运行时改变结构,这个小白想不懂,但是也写上。我的理解是在程序运行的时候可以改变程序的代码,程序不用停止。比较:  静态语言运行时因为只需运行目标程序,所以运行速度快,但是因为要注意变量的类型,

2021-08-26 08:56:38 79

原创 php 算法

1、快速冒泡排序 $arr = [5,13,241,516,123]; $length = count($arr); for($i = 0;$i<$length -1 ;$i++){ if($arr [$i]>$arr[$j+1]){ $tem = $arr[$i]; $arr[$i] = $arr[$j+1]; $arr[$j+1] = $temp; .

2021-08-20 18:49:28 71

原创 PHP常见函数

2021-08-16 19:53:28 91 1

原创 PHP观察者模式

<?php// 被观察者接口interface Observerd{ //注册观察者 public function attach(Observer $observer); //删除观察者 public function detach(Observer $observer); //通知观察者 public function notify();}//实例被观察者class Order implements Observerd{ .

2021-08-16 19:01:29 73

原创 PHP 对接图灵 代码

<?php/* * 08/15 * william for write * yangxinpeng (19.9) * */namespace app\api\controller;use app\Request;class Tuling{ private $apiKey = ''; public function __construct() { $this->apiKey = config('setting.tuling.api.

2021-08-15 18:59:23 118

原创 git 基础命令

初始化gitgit initgit add .git commit -"注释"切换分支git checkout <分支名>合并分支git merge <分支名>提交分支git push origin <分支名> git clone <https 连接>

2021-08-09 21:13:42 46

原创 cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决

从https://curl.haxx.se/docs/caextract.html上下载cacert.pem打开php.ini 搜索curl.cainfo 与 openssl.cafile,将其配置成你自己cacert.pem文件的路径curl.cainfo=" 路径 "openssl.cafile="路径"文件在我的gitt仓库中请方便下载https://gitee.com/feng-ziheng/miscellaneous.git...

2021-08-07 11:30:28 162

原创 从输入url到页面加载发生了什么

DNS解析 TCP连接 发送http请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束

2021-08-06 11:33:48 57

原创 PHP 限制恶意请求

原理是通过使用redis存储每个用户的访问次数 在这里我设置的是10 次 ,当用户访问时 传递用户id 每次请求次数都会增加一次 ,每次判断当达到十次时就会返回不允许访问。PHP//测试调用 function text() { $this->restrict(1); } //限制函数 public function restrict($uid) { $redis = new Redis(); ...

2021-08-06 11:31:47 408

原创 TinkPHP6.0框架中的event事件用法

在此只介绍监听类的用法一、创建监听类php think make:listener TestListener修改 TestListener.php文件代码<?phpdeclare (strict_types = 1); namespace app\listener; class TestListener{ /** * 事件监听处理 * * @return mixed */ public function ...

2021-08-06 10:33:17 252

转载 tp6中实现毫秒级定时任务功能

一、TP6使用workerman1、安装composer require workerman/workerman2、创建Timerphp think make:command Timer3、实现实例class Timer extends Command{ /** * @var int */ protected $timer; /** * @var int|float */ protected $i.

2021-08-06 10:15:03 771

原创 PHP + 百度智慧云内容审核(敏感词过滤)

一、查看百度内容审核接口内容审核平台 - 请求说明 | 百度AI开放平台 (baidu.com)二、实例 将百度接口封装到自己的lib层<?phpnamespace app\service\libs;/** * 百度云内容审核 * @param [type] $type 内容类型 image msg * @param [type] $content 内容 * @return [type] [description] */...

2021-08-06 08:57:10 720

转载 PHP安全register_globals---PHP学习之路

一、什么是register_globalsregister_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过来的参数.register_globals的值可以设置为:On或者Off 1、On和Off的区别<form action='' method='get'><input type='text' name='username' value='alex'...

2021-08-05 11:09:25 920

原创 vue+layui

效果图前端/;<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>奥运奖牌表</title> <link rel="stylesheet" href="//unpkg.com/layui@2.6.8/dist/css/layui.css"></head><body>&lt

2021-08-03 23:17:19 498

原创 观察者模式--PHP设计模式

一、what is "观察者模式"1、概念观察者模式(observer):当一个对象状态发生改变时,依赖他的对象都会收到通知做出动作。观察者模式属于行为模式。二、为什么要设计观察者模式1、作用 解决...

2021-07-30 20:23:30 50 1

原创 9、微信小程序--多文件上传(使用lin ui)

前言:微信多图片上传的思想是:选择图片,每选择一张图片,将图片的临时路径存入数组。阅览图片从数组循环展示,提交内容时遍历图片数组。点击一次发布,循环数组元素,每遍历一次发起一次请求(图片数量=请求数量)。后台读取临时路径取出绝对路径上传到本地框架内或者云存储中,将云存储的回调存入数据库。一、安装lin uilin ui 入门文档(仔细阅读)快速开始 | Lin UI (talelin.com)二、使用lin ui组件在自己的的json文件里引入组件{ "u...

2021-07-25 20:12:51 972 2

原创 TP6+layui 文件上传

一、引入layuihtml<div class="layui-upload-drag" id="upload"> <i class="layui-icon"></i> <p>点击上传,或将文件拖拽到此处</p> <div class="layui-hide" id="uploadDemoView"> <hr> <img src="" alt="上传成功

2021-07-25 20:01:33 544

原创 8、微信小程序--弹出提示方式

一、弹出提示框,可以选择确定或者取消。 wx.showModal({ title: '提示', content: '这是一个模态弹窗', success: function (res) { if (res.confirm) {//这里是点击了确定以后 console.log('用户点击确定') } else {//这里是点击了取消以后 console.log('用户点击取消') } }

2021-07-20 14:31:30 1706

原创 11111

秒杀一、秒杀前 1、防止用户不断刷新页面 页面静态化、分发cdn分散压力。 2、防止提前下单 倒计时,判断订单是否开始。 3、录入秒杀商品库存 将商品 id 以lpush 的方法存入list列表。 二、秒杀中 1、接受用户请求。 2、限制用户抢购次数。 3、判断库存是否足够 4、用户秒杀成功,生成订单削减库存。三、秒杀后 1、支付成功,返回提示,异步回调改变订单状态...

2021-07-19 07:27:34 141

转载 5、include 和 require 的区别

目录一、概要2、详情2.1 报错2.2 条件引用2.3 文件引用方式include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。一、概要  require()语句的性能与include()相类似,都是包括并运行指定文件。不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换req...

2021-07-17 11:13:45 1024

原创 4、get和 post的 区别

1、GET在浏览器回退时是无害的,而POST会再次提交请求。2、GET产生的URL地址可以被Bookmark,而POST不可以。3、GET请求会被浏览器主动cache,而POST不会,除非手动设置。4、GET请求只能进行url编码,而POST支持多种编码方式。5、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。6、GET请求在URL中传送的参数是有长度限制的,而POST没有。7、对参数的数据类型,GET只接受ASCII字符,而POST没有限制。8、GET比POST更

2021-07-17 10:30:59 217

原创 3、docker安装--配置Mysql

目录声明:下载mysql镜像1、 查看最新版本2、下载镜像3、查看本地镜像4、运行容器5、查看进程6、进入容器7、在容器内登录mysql8、查看root用户信息9、为root分配权限,以便可以远程连接:10、使用Navicatlian连接Mysql:11、解决问题声明:首先,本文多数是引用菜鸟教程上面的内容,故本文本质上是自己的学习总结。Docker 安装 MySQL | 菜鸟教程 (runoob.com)其次,也引用了此连接的文...

2021-07-16 19:22:58 169

空空如也

空空如也

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

TA关注的人

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