自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 php在swoole中redis加锁续期

【代码】php在swoole中redis加锁续期。

2024-03-28 17:41:29 80

原创 php华为云SMN校验http(s)消息签名

【代码】php华为云SMN校验http(s)消息签名。

2024-03-27 16:08:48 101

原创 thinkphp 执行自定义命令报错

执行命令 compser dump-autoload。

2024-03-06 14:51:09 362

原创 Win11自定义目录安装Linux子系统wsl

如果运行有报错提示 Error: 0x800701bc WSL 2?解压找到 Ubuntu_2004.2021.825.0_x64.appx,将其后缀改为 .zip。正常情况下会提示安装并要求输入新的用户名密码等,接下来就可以愉快的使用了~解压完成后运行子系统 ubuntu.exe。然后将该压缩包放到需要安装的目录解压。再次运行 ubuntu.exe 即可。下载完后将文件后缀改为 .zip。执行完后记得一定要重启!这里可选择需要下载安装的版本。

2023-10-10 15:55:56 328

原创 golang处理json转义

【代码】golang处理json转义。

2023-06-26 14:14:45 1101

原创 Fiddler抓包自动解密aes

修改该文件,找到 OnBeforeResponse 方法并修改。

2023-04-19 14:25:48 1423 4

原创 phpunit骚操作之静态类的部分mock

通过官方文档以及实践得知,含有静态方法的类如果需要mock,就要使用前缀 alias: ,但是随之而来有个问题是后面无法调用这个类本身的方法,所以通过阅读源码可以使用以下方法来实现:1.创建 Helpers 类进行封装2.创建静态类3.测试运行............

2022-06-29 11:12:33 426

原创 一台电脑使用多个git账号

根据账号生成对应的ssh key编辑 ~/.ssh/config 文件将上面创建的专用密钥添加到 ssh-agent 的高速缓存中将地址的地址改成config里的host,再执行 git clone如果无法克隆,可先通过https方式克隆下来,再修改 .git/config 里的url地址为ssh地址即可本地已存在的项目可通过修改项目下 .git/config 文件里的url地址拓展:...

2022-06-23 22:08:43 186

原创 mac安装php7.2

brew安装提示失败原来是brew已经不支持7.2了,只有用其他办法来安装安装完成提示根据上面提示启动即可

2022-06-23 21:53:11 1566

原创 docker内php使用xdebug性能分析

docker内php使用xdebug性能分析

2022-06-22 17:49:11 770

原创 基于Go实现设计模式中的工厂模式

话不多说开干package mainimport "fmt"// 定义接口type People interface { DoWork()}// 学生type Student struct {}func (r *Student) DoWork() { fmt.Println("study");}// 程序员type Programmer struct {}func (r *Programmer) DoWork() { fmt.Println("tou

2022-03-14 15:41:54 367

原创 基于Go实现设计模式中的策略模式

话不多说直接贴代码干就完了package mainimport "fmt"// 定义接口type Transportation interface{ Go()}// 策略1type Airplane struct {}func (r *Airplane) Go() { fmt.Println("Airplane gogogo")}// 策略2type Train struct {}func (r *Train) Go() { fmt.Prin

2022-03-14 15:10:03 447

原创 php简单实现中间件功能

中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件。中间件分为前缀中间件,后置中间件。可以用于权限认证。日志记录等下面用面向对象来简单实现一个php中间件功能1.主程序编写<?phpclass App{ protected $middlewares = []; public function run($request) { $handler = function($request)

2022-03-11 15:10:45 1711

原创 swagger报错Multiple @OA\Response() with the same

解决办法:将 @OA\POST 或者 @OA\GET 改成@OA\Post 或者 @OA\Get

2022-02-14 10:37:01 303

原创 php 使用 ProtoBuf

以下教程为无需c扩展版本官网下载protoc脚本,用于生成所需php类https://github.com/protocolbuffers/protobuf/releaseswindow下下载win32或者win64版本,mac下载osx版本解压后得到可运行的脚本protoc编写proto消息类型,保存为person.protosyntax="proto3";package proto;message Person{ string name=1; int32

2021-10-19 14:36:00 1493

原创 docker构建nginx+php8

拉取官方php8.0镜像docker pullphp:8.0-fpm// --name php8 将php的容器命名为php8// ~/Desktop/wwwroot/:/www 本地~/Desktop/wwwroot/目录映射至容器/www目录// -d 后台运行docker run --name php8 -v ~/Desktop/wwwroot/:/www -d php:8.0-fpm拉取官方最新nginx镜像docker pullnginx:latest创建本地n..

2021-10-18 12:39:53 1301

原创 php中Redis使用Lua脚本

主要使用到eval命令EVAL命令:命令格式:EVAL script numkeys key [key …] arg [arg …]-script参数是一段 Lua5.1 脚本程序。脚本不必(也不应该[^1])定义为一个 Lua 函数-numkeys指定后续参数有几个key,即:key [key …]中key的个数。如没有key,则为0-key [key …]从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key)。在Lua脚本中通过KEYS[1], K...

2021-08-24 17:25:06 378

原创 git 常用命令笔记

git init 初始化仓库 git status 查看修改状态 git add 所有改变提交至暂存区 git commit -m "xxxxx" 备注信息 git commit --amend 修改刚刚提交的 commit git remote add origin https://gitee.com/xxxxx/xxx.git 初始本地仓库推送至远程仓库 git push origin branchName 将本地修改提交至远程仓库 git pull 从远程仓库拉取代码并自......

2021-07-12 11:25:08 306

原创 yii2-elasticsearch报错Cluster autodetection did not find any active node

报错详细内容:Cluster autodetection did not find any active node. Make sure a GET /_nodes reguest on the hosts defined in the configreturns the "http_address" field for each node.解决办法:打开 vendor/yiisoft/yii2-elasticsearch/Connection.php183行左右找到代码foreac

2021-07-12 10:53:42 134

原创 elasticsearch使用日记

多个索引同时搜索GET index1,index2/_search常见查询GET index/_search{ "query": { "bool": { "must": [{ "match": { // 分词搜索 "name": "test" } }, { "match_phrase": { // 短语分词搜索 "name": "test" } },{ "multi_match": { /

2021-07-09 18:07:56 95 1

原创 php下Yii2用redis实现接口访问频率限制

基于访问ip做的访问频率限制class Limit{ /** * api 访问频率限制 * @param $uid * @param int $timeout * @param string $path */ public static function requestLimit($ip = null, $timeout = 0, $path = '') { if (empty($ip) {

2021-07-01 17:24:58 437

原创 nodejs读取gbk文件

应用于有时候在不知道文件编码的情况下需要读取文件内容1.安装iconv-jschardet, 这个模块可以判断文件编码,单纯转换编码也可用iconv-litenpm install iconv-jschardet2.使用let fs = require("fs");let jschardet = require('iconv-jschardet');let path = './file.md';let content = fs.readFileSync(path);let..

2021-06-29 14:48:11 851

原创 charles和fiddler在安卓7.0以上抓包https

1.软件抓包环境部署2.手机必须root3.手机安装好证书4.下载RootExplore(RE文件管理器)5.使用下载的RootExplore进入以下目录:/data/misc/user/0/cacerts-added,找到.0结尾的文件,这个其实就是前面安装好的证书,复制这个文件6.打开/system/etc/security/cacerts这个目录,可以发现下面有很多.0结尾的文件,这些都是系统证书,将刚刚复制的文件放进去(因为是系统文件一定要开启root,小米手机root后还需要下

2021-06-23 11:28:26 655

原创 php aws cloudfront基于时间或ip的签名url实现防盗链

1.aws cloudfront后台创建公有密钥并将密钥添加至密钥组文档:https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html2. 配置awscloudfront 分配域名的行为编辑行为,开启限制查看器访问,选择可信密钥组,添加之前创建的密钥组3.php实现代码use Aws\CloudFro...

2021-04-21 10:46:15 536

原创 mac big sur下安装phpredis报错configure: error: Cannot find php_hash.h

configure: error: Cannot find php_hash.h或者configure: error: Cannot find php_json.h原因:如果系统是big sur,且用的系统自带的php,那么是无法安装phpredis的,因为高版本的系统没有写入权限,网上的关闭SIP和sudo mount -uw /方法都没用暂时成功的唯一办法是装其他版本的php,放弃这个自带的php,装其他版本也很简单,比如php7.2brew install php72安装成功提.

2021-04-20 16:26:55 1620

原创 php实现aws s3预上传

1. composer 安装aws工具类composer require aws/aws-sdk-php2.获取预上传链接 use Aws\S3\S3Client; /** * aws s3 获取s3预上传文件presigned url * @param [type] $key [aws的目录] * @return [type] [string] */ public static fu

2021-04-20 15:55:16 658

原创 安卓7.0以后,Fiddler安装证书也无法抓包问题

1.将 FiddlerRoot.cer 证书下载到电脑本地2.打开命令窗口执行下面命令(如果执行失败,可下载git,右键git bash执行)openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer3.保存上图执行命令后第一行输出内容,转换证书格式:,把上个命令第一行输入内容,命名为新文件名称 +.0 后缀格式openssl x509 -inform DER -in FiddlerRoot.cer -text &gt

2021-04-08 16:14:49 1978

原创 yii2下composer安装失败解决办法

执行composer global require "fxp/composer-asset-plugin:~1.3"如果失败,检查composer版本和php版本https://github.com/fxpio/composer-asset-plugin/releases

2021-03-14 15:13:00 351

原创 lnmpa下apache启动失败/lib/libapr-1.so.0: undefined symbol: dlopen

我是在lnmpa环境下装了几个glibc,升级了下gcc,重启后apache就启动不了了,一直报错/usr/local/apache/bin/httpd: symbol lookup error: /usr/local/apache/lib/libapr-1.so.0: undefined symbol: dlopen解决办法如下:cd /usr/local/apache/lib/ 可以看到libapr-1.so软连接的libapr-1.so.0.5.1mvlibapr-1...

2021-01-12 15:33:12 1440 1

原创 php实现布隆过滤器

<?phpclass Bloom { // 哈希函数的数量 protected $hashNum = 3; // 位数组的大小 protected $bitArrayCount = 1024*10; // 位数组 protected $bitArray = []; public function __construct() { // 构建默认的位数组,全部置为 false $this->b.

2020-12-28 16:37:18 286

原创 微信小程序vant异步获取自定义省市区三级联动(附地区数据库)

wxml文件<van-field value="{{ district_text }}" name="district_text" type="text" label="区域" readonly="{{true}}" placeholder="请选择区域" bindtap="onClickDistrictPicker" /><van-popup show="{{ show_district }}" position="bottom" z-index="15"&

2020-11-21 16:34:20 2531

原创 php+js实现腾讯地图计算两点间直线距离

js实现方法, 从微信小程序官方SDK中分离出来的var EARTH_RADIUS = 6378136.49; /** * 计算角度 */ function rad(d) { return d * Math.PI / 180.0;}/** * 计算两点间直线距离 * @param a 表示纬度差 * @param b 表示经度差 * @return 返回的是距离,单位m */function getDistance(latFrom, lngFrom, latTo, l

2020-11-19 15:13:26 661

原创 php腾讯地图逆地址解析(签名校验)

官方文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder这里使用签名校验的方式,可在腾讯地图控制台KEY管理里查看/** * [get_geocoder_location 腾讯地图逆地址解析] * @param [float] $lng [description] * @param [float] $lat [description] * @return [array] [des

2020-11-19 15:03:19 1381

原创 微信小程序vant weapp + canvas实现图片等比例压缩上传

<van-uploader slot="button" accept="image" file-list="{{ picture_file }}" deletable="{{ false }}" max-count="2" bind:after-read="afterReadPicture"/> <canvas canvas-id="canvas" style="width:{{cw}}px;height:{{ch}}px;position: absolute;left:-20.

2020-11-18 16:28:22 1095 2

原创 php使用phpspreadsheet实现excel导入导出

composer引入phpspreadsheetcomposer require phpoffice/phpspreadsheet<?phpuse PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;use PhpOffice\PhpSpreadsheet\IOFactory;/** * [数据导出] * @return [type] [description] */.

2020-11-18 11:09:16 429

原创 php使用Elasticsearch7进行地理位置搜索

简单封装ES类, 需要注意es7下取消了type<?phpnamespace app\common\lib;use Elasticsearch\ClientBuilder;class Es{ private $client; // 构造函数 public function __construct() { $params = array( '127.0.0.1:9200' ); $t

2020-11-18 10:49:11 743

原创 微信小程序实现上拉刷新下拉加载

const util = require('../../../utils/util.js');let app = getApp();Page({ /** * 页面的初始数据 */ data: { list: [], current_page: 1, total: 0, PullDownRefreshing: false, //是否正在刷新 show_no_data: false, //展示空数据 show_load.

2020-11-18 10:21:25 424

原创 微信小程序跨页面通信

简单业务场景,比如用户中心进入修改手机号页面,修改成功后用户中心需要立马调用setData来修改显示数据,最优的方法是使用发布/订阅模式创建Event类,event.jsclass Event { on (event, fn, ctx) { if (typeof fn != "function") { console.error('fn must be a function') return } thi

2020-11-18 10:06:49 370 1

原创 thinkphp3.2更改入口文件目录

在根目录创建web文件夹将index.php, .htaccess, Public文件夹 等非核心文件移动至web文件夹内修改index.php将define('APP_PATH','./Application/'); 改为define('APP_PATH', __DIR__ . '/../Application/');将require './ThinkPHP/Thin...

2020-01-09 17:31:28 1197

原创 centos下安装elasticsearch搜索引擎

elasticsearch是用Java语言开发的 所以先安装 yum install java进入安装目录 cd /usr/local创建安装目录 mkdir elasticsearch && cd elasticsearchwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-...

2019-12-10 14:33:27 100

空空如也

空空如也

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

TA关注的人

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