自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纸上得来终觉浅

用心学习,认真工作,笃志而行

  • 博客(129)
  • 资源 (7)
  • 收藏
  • 关注

原创 javascript 正则表达式匹配替换

javascript 正则表达式匹配替换

2023-11-21 17:49:53 94

原创 使用guzzleHttp组件并发请求多个接口

PHP使用guzzle组件并发发送多个请求,请求多个接口

2023-10-22 20:50:27 461

原创 mysql 中文全文索引

mysql中文全文索引 实测能够生效

2022-07-14 09:34:57 458 1

原创 laravel6 使用php-amqplib包处理App中的埋点问题

<?php/** * 埋点服务 * User: Administrator * Date: 2022/5/30 * Time: 17:17 */namespace App\Services;require_once __DIR__ .'/../../vendor/autoload.php';use PhpAmqpLib\Connection\AMQPStreamConnection;use PhpAmqpLib\Message\AMQPMessage;use Illumi.

2022-05-30 17:36:59 384

原创 根据百度坐标获取两坐标之间的距离

百度两坐标之间的距离

2022-04-28 23:23:23 519

原创 将mongodb中的时间戳转为日期时间

将mongodb中的时间戳转为datetime

2022-03-28 17:21:39 5127

原创 一个mysql存储过程,可以动态执行sql

mysql 可以动态执行sql的存储过程,存储过程里使用游标

2022-01-30 19:32:30 2181

原创 mongodb如何删除集合中的重复数据

mongodb如何删除重复数据,使用group语句获取行数大于1的记录,将重复的数据遍历删除,使用deleteOne或remove都可以,forEach遍历数组

2021-12-17 15:30:32 2727 1

原创 mongodb 聚合语句

mongodb有时会有涉及到统计的业务,这时候考虑使用aggregate和pipeline来完成最终结果,是一种高效的方案,最好针对match条件建索引,其中的处理过程尽量简化db.zl_im_chat_connect.aggregate([{ "$match": { "create_time": { "$gte": 1627747200, "$lt": 1630252800 }, "to_use...

2021-09-03 10:02:09 228

原创 MySQL 分组取前n条的方法比较

MySQL 分组取前n条的方法比较背景解决方案实际sql背景有时候我们需要根据表里的分类来获取前N条数据,比如根据课程来查询每科成绩的top10分数,这时候有几种解决方案解决方案使用Union 将每科成绩的top10人员以及成绩 使用 Union 连接起来使用group by 语句,根据成绩分组,然后按照排序规则(成绩倒序)取出成绩表的id,截取前10个使用where子句,子查询跟主查询中的成绩比较,10>count(*)作为条件,只返回10条数据实际sql以下是一些sql语句,

2021-04-27 16:20:09 707

原创 docker file for php7.2-fpm

FROM php:7.2-fpmMAINTAINER admin "[email protected]"# 设置时区ENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneRUN echo "nameserver 8.8.8.8" > /etc/resolv.conf && echo "nameserver 8.8.8

2021-03-13 20:21:23 422

原创 验证本地或远程网址是否HTTP/2站点

验证本地或远程网址是否HTTP/2站点概论以下是一个验证的类以及静态方法最终返回的结果如下概论现在越来越多的站点开始支持HTTP/2协议,那我们如何验证请求的网址是Http2.0协议的接口呢?又如何验证本地PHP环境(curl类库)是否支持Http2.0协议呢?以下是一个验证的类以及静态方法<?php$a = CURL_VERSION_HTTP2;echo 'CURL_VERSION_HTTP2:';var_dump($a);echo '<hr/>';$b = CURL

2020-12-09 21:59:46 594

原创 判断手机号是否合法的正则表达式 备注一下

经常遇到判断手机号格式是否合法的情况,这里就备注一下public static function VerifyPhone($Phone = null){ /** * 移动:134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、178(4G)、147(上网卡); * 联通:130、131、132、155、156、185、186、176(4G)、145(上网卡);

2020-09-16 14:01:50 637

原创 I/O模型 和 两种高效的事件处理模式

I/O复用是最常使用的I/O通知机制。它指的是,应用程序通过I/O复用函数向内核注册一组事件,内核通过I/O复用函数把其中就绪的事件通知给应用程序。linux上常用的I/O复用函数是select,poll和epoll_wait。需要指出的是,I/O复用函数本身是阻塞的,它们能提高程序效率的原因在于它们具有同时监听多个I/O事件的能力。SIGIO信号也可以用来报告I/O事件。我们可以为一个目标文件描述符制定宿主进程,那么被指定的宿主进程将捕获到SIGIO信号。这样,当目标文件描述符上有事件发生时,SIGNO

2020-08-20 18:48:12 291 1

原创 用PHP实现Dijkstra算法,计算从起始点到其他任一节点的最短路径长度

一个图中有很多点,如何求出两点之间的最短距离呢?这实际上涉及到一个算法问题,如下图所示:一张图上有从A到G七个节点,如果想求出任一个节点到D节点的最短距离,该怎么办呢?参照 Dijkstra算法原理,我用PHP实现了该算法,感谢“平凡的L同学”,他的文章读后立即就能明白算法的原理。<?php/** * 这是一个节点类 */class Node { //标记该节点是否已得到最短路径 var $isMarked = false; //标记该节点离起始节点的最短路

2020-08-18 15:09:30 615

原创 php实现的数组快速排序算法

快速排序算法思想$arr = [5, 2, 1, 0, 3]如果开始时选择3作为比较基准的话,$right = $arr.length -1;那就是 $arr[$right]=3;quicksort($arr, $left, $right) { 未排序区间: [i,j] [0,i):放比3小的数 (j, $right-1] :放比3大的数 通过交换值来实现放到不同区间一直到i>j为止 然后交换当前i位置数据与$arr[$right]的值 递归调用排序前一部分 q

2020-08-12 16:36:28 382

原创 PHP 如何验证字符串中左右括号是否匹配

PHP笔试题,一个字符串里有很多个小括号,要求 小括号可以嵌套,但是必须保证左右匹配, 要求写出一个方法能验证该字符串中是否符合小括号规定的格式<?php/** * PHP笔试题,一个字符串里有很多个小括号,要求 小括号可以嵌套,但是必须保证左右匹配 * 给出一个方法,要求能验证该字符串中是否符合小括号规定的格式 */$input1 = '))))((((()';$input2 = '((()))()';$input3 = '((())())';$input4 = ')(()()

2020-08-09 00:39:18 691

原创 PHP 如何找到数组中不重复的那些元素

一道php测试题,要求 找到数组中不重复的那些元素,主要考察使用array_count_values()这个方法的,该方法是php自身提供的一个计量某元素出现次数的一个方法,用了该方法后效率确实提高不少以下是一次算法耗时以及占用内存的一个统计情况<?php/** * 一个简单的php算法题: 要求只获取那些不重复的数据,要保证高效率 * */$input = [1,1,2,2,5,5,1,6,2,3,7,7,9,9];for ($i=0; $i<100000; ++$i) {

2020-08-07 23:00:30 603

原创 组织结构的递归输出方法

一道PHP笔试题的解法,递归地输出组织架构下的每一个人的所有下属<?php$team = [ '张三' => [ '刘备'=>[ '张飞' => null, '关羽' => [ '马良' => null ], ], '孟达'=>null ], '李四' => [ '王

2020-08-01 21:35:29 560 1

原创 array_merge/array_merge_recursive/+ 几个数组合并方法的区别

array_merge/array_merge_recursive/+ 几个数组合并方法的区别php平时开发中,经常会用到 array_merge来合并两个数组,有时候也会用 + 来合并两个数组,php手册上还有 array_merge_recursive这种合并方法,那么这三者到底有何区别呢?下面是一个实际的例子$arrA = ['a'=>1, 'b'=>2, 'c'=>3, 'aab', 'd'=>['are', 'you', 'ok']];$arrB = [1,

2020-07-29 10:36:41 284

原创 laravel框架中使用GuzzleHttp并发请求多个接口

Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。接口简单:构建查询语句、POST请求、分流上传下载大文件、使用HTTP cookies、上传JSON数据等等。发送同步或异步的请求均使用相同的接口。 使用PSR-7接口来请求、响应、分流,允许你使用其他兼容的PSR-7类库与Guzzle共同开发。抽象了底层的HTTP传输,允许你改变环境以及其他的代码,如:对cURL与PHP的流或socket并非重度依赖,非阻塞事件循环。中间件系统允许你创建构成客户端行为。

2020-06-18 10:36:01 4421

原创 RabbitMQ集群搭建及使用(一)

RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的首先我们分别在server1,server3上安装erlang sudo apt-get install erlang rabbitmq集群需要通过主机名互相访问 所以必须在这两台机器 /etc/hosts配置以上内容 确保主机名正确两台机器使用rabbitmq进行通信 使用的安全策略是 erlang.cookie 就是一个随机字符串 两节点必须保持一致 否则 无法添加节点到集群.

2020-05-28 20:50:40 647 1

原创 Linux下搭建Consul微服务注册中心并结合swoft框架使用

首先下载consul文件包wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zipunzip consul_1.6.2_linux_amd64.zip解压之后实际上是一个单一的文件 ./consul然后配置consul集群主服务器: 192.168.56.107备份服务器:192...

2019-12-31 18:10:51 1142

原创 php7中的异常和错误处理

在PHP7.*版本中,一些Error和Exception可以通过try catch语句捕获到可捕获的异常/错误大致有以下三种:Error:PHP内核抛出错误的专用类型, 如类不存在, 函数不存在, 函数参数错误, 都会抛出此类型的错误,PHP代码中不应该使用Error类来作为异常抛出Exception:应用开发者应该使用的异常基类ErrorException:此异常基类专门负...

2019-12-24 14:57:45 812

原创 PHP使用curl_multi_exec多线程并发抓取数据

PHP使用curl_multi_exec并行发送多个请求以下是一个使用curl_multi_exec的实际例子php文件 curl_multi.php以下是一个使用curl_multi_exec的实际例子有时候在一个PHP方法中要多次调用外部的接口,为了提高效率,我们不妨使用curl_multi_exec并行发送多个请求,可以明显地提高获取响应数据的效率,下面是一个实际运行的例子。php文件...

2019-09-16 19:17:23 5866 2

原创 Go语言切片注意事项

Go语言切片是在项目中经常使用的,在当前实例中会实现切片的赋值、赋值、追加以及在函数中通过值传递、引用传递的方式来修改切片值package mainimport "fmt"func main() { arrStr := [...]string{"java", "c","c++","python","c#","basic"} sliceStr := arrStr[1:4:5] //下...

2019-08-26 17:39:43 221

原创 mysql 事务及断点

mysql 事务及断点transactionsavepoint有时候可能需要在mysql事务中部分提交一些sql命令,这时候断点就派上用场了。比如:一个事务需要修改id=6的用户的用户名和email,但是事务过程中我又不想修改email内容了,这时候就需要只提交用户名的语句。这里的两个sql语句:修改用户名update users set username=‘user6’ whe...

2019-08-02 18:30:47 788

原创 模拟使用keepalived+virtual IP技术 实现nginx故障转移

概述Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。开始试验我在ubuntu18.02 虚拟机上模拟 nginx...

2019-07-31 19:21:42 996

原创 php 关于__invoke方法调用

在php5.3版本及之后,当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用下面是一个调用的实例,来深刻理解一下他的运行机制。<?php/** * 当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。 */class basicA { protected $varA; protected $varB; ...

2019-07-01 20:38:00 1556

原创 解决chrome浏览器中鼠标滚轮滚动事件失效的问题

今天遇到了一个html5页面由于开启了图片遮罩层在chrome浏览器中,鼠标滚轮上下滚动时,页面不动的问题,后查询相关资料后解决,具体方法是加入如下代码:<script type="text/javascript"> var scrollFunc = function(e) { var direct = 0; e = e || window.e...

2019-05-24 17:23:05 12403

原创 GO语言切片使用注意事项

GO语言切片使用注意事项Go语言切片以下是一些代码示例 use_slice.go最终运行结果Go语言切片Go语言切片(slice)相当于动态数组,可以随意扩展元素。但是我们在使用过程中,还是要稍微注意该语言与其他语言不同的地方的,比如slice如果是截取一个数组的话,对slice重新赋值时,有可能影响被截取的数组内容,这在其他语言里是没有的。以下是一些代码示例 use_slice.gopa...

2019-04-26 17:40:05 415

原创 laravel 如何实现mysql表关联以及联合

laravel mysql表关联以及联合示例代码关联条件如果是多个时,应该尽量都放到on条件下关联查询一般是,先关联到数据后在根据where条件查询,所以关联的条件很重要,尽可能加上,可以让源数据尽可能地少,减小内存的占用。laravel 如何实现多条件关联?关联查询时,如果表名特别长有时候会超出一行不太方便,这里需要使用别名laravel 如何实现表别名?mysql查询时,有时候需要...

2019-03-12 17:49:46 1053

原创 ELK6.5 环境搭建及一般应用

ELK概述ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功...

2018-12-26 18:47:47 2109

原创 ElasticSearch6.5 使用ik+拼音分词

ElasticSearch安装中文分词插件```linuxcd /usr/local/src/elasticsearch-6.5.2./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.2/elasticsearch-analys...

2018-12-26 18:02:23 4495 1

原创 redis-cluster 分布式集群

redis分布式集群redis分布式集群概述Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.Redis 集...

2018-11-30 11:25:53 656

原创 关于mysql float类型字段比较 不准的问题

这里的cx_mode表中的guideprice是float类型,qys_data表中的qys_avgprice是int(11)类型有一条记录a:qys_avgprice 266500,guideprice 25.65####错误的sql语句select a.provinceid,a.cityid,a.modeid,a.qys_avgprice,cast(b.guideprice as decima...

2018-07-03 17:37:50 2274

原创 CI框架中的事务嵌套问题

我的环境 PHP5.6.25+ CI 2.2.0版本代码,该版本事务嵌套有问题。问题1:事务嵌套,即:主方法中有 db->trans_begin(),子方法中也有db->trans_begin() ,如果子方法中也有事务,则如果回滚的话,会导致子方法之前的语句不受子方法中db->trans_rollback()的影响,所以可以考虑在主方法中开启事务,子方法不再开启事务,只需要在业务出错的时

2018-01-05 19:59:40 2046

原创 mysql 如何获取每一组创建时间最小的记录

mysql 如何获取每一组创建时间最小的记录

2017-12-11 17:13:44 9537 4

原创 PHP CI框架的url路由配置

CI框架对应的nginx配置,Windows或linux下的配置

2017-09-22 18:52:16 4288

原创 使用nodejs+socket.io+redis订阅发布完成竞拍的过程

简单地模拟一个拍卖出价的过程

2017-08-28 20:34:00 3887

test_ref_dir.rar

PHP面试题 有两个文件路径不同,然后根据一个文件求出两一个文件的相对路径、 要求写出一个方法,输入的是两个文件路径,得到的是根据文件B得到文件A的相对路径

2020-08-21

查找一个字符串中的最长回文子串,这里采用的是Manacher算法

查找一个字符串中的最长回文子串,这里采用的是Manacher算法 比如:cababcaac的最长回文子串就是caac 其中的aba bab也都是回文子串 (Manacher算法) 效率很高的一种查找算法,效率可以达到O(2n+1)

2020-08-11

charles 4.0.1的破解补丁包

charles是一款不错的手机发包查看工具,现有版本4.0.1是需要注册的,这里时破解补丁,直接覆盖安装目录下lib下的同名文件即可

2016-11-10

自己写的支持多浏览器的Ajax三级级联菜单,Post方式传值

自己写的三级级联菜单,添加的时候点上一级出现下一级菜单,修改的时候自动绑定各级级联菜单,后台用.net实现,可以用到任何网页中,包括HTML,aspx均可以的,数据库表结构脚本也在其中,支持Ajax Post方式,字符很多也没问题,Ajax可以在IE6/7,Firefox/The World下正常运行均没有问题,呵呵,支持多浏览器的,各位高手可以一试啊,个人感觉还行,有问题随时欢迎回复啊

2009-08-25

C语言 字符串操作和二叉树遍历算法

针对字符串的操作,包括查找子串,字符出现次数统计,字符串插入,字符串倒置等 二叉树,包括构造二叉树,遍历二叉树,又分为前序遍历,中序遍历和后序遍历等,其中生成二叉树的顺序以文件中所附图为准。 还包括链表的构造,文件的操作

2009-03-20

C#的简易开发工具,很好用的哦

一款不错的C#语言开发工具,可以写windows控制台程序、winform程序以及Asp.net WebApplication,有模板框架,只需要不到5M就可以下载了,不用装.net FrameWork 就能进行开发了,呵呵!支持.net2.0

2008-12-02

calculator

C# 实现的语法分析器,测试一下,看行不行? 具体格式 例子 -(-45.2*42)+43*(-43*a4)

2007-01-22

空空如也

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

TA关注的人

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