PHP生成二维码
最近做页面保存长图的功能,长图底部需要附带页面地址二维码,之前没搞过二维码相关的实现,在Google上搜索一番,发现了两个现有的轮子phpqrcode扩展和qr-code扩展。
对比发现phpqrcode很多年没有维护了,最终选择了qr-code。
注:如果使用phpqrcode可以参考PHP基于phpqrcode类生成二维码
PHP生成二维码
最近做页面保存长图的功能,长图底部需要附带页面地址二维码,之前没搞过二维码相关的实现,在Google上搜索一番,发现了两个现有的轮子phpqrcode扩展和qr-code扩展。
对比发现phpqrcode很多年没有维护了,最终选择了qr-code。
注:如果使用phpqrcode可以参考PHP基于phpqrcode类生成二维码
一、什么是堆
堆是一种数据结构,特殊的树形数据结构。常见的堆有二叉堆、二项式堆、斐波拉契堆等。
堆这种数据结构主要用来实现两个功能:堆排序和优先队列。
PHP SPL中有堆这种数据结构(SplHeap),及优先队列(SplPriorityQueue)。
二、细说二叉堆
这里细说的堆排序使用的是二叉堆,那么二叉堆是什么样的呢
二叉堆是一颗完全二叉树(维基百科提到还有可能是近似完全二叉树,很不理解),节点和双亲节点维持着固定的关系,要么节点的值都大于双亲节点,要么节点的值都小于双亲节点,并且每个节点的左右子树都是二叉堆。【完全二叉树及堆的图,可参考知乎专栏,传送门】
特点:
0、节点都大于双亲节点的二叉堆叫大顶堆。
1、节点都小于双亲节点的二叉堆叫小顶堆。
2、二叉堆一般用一维数组来存储。
3、二叉堆一个节点的左右孩子没有顺序。
4、有n个元素的二叉堆,最后一个非叶节点为n/2 -1
继续阅读
最近这一两年,长图分享突然悄无声息的兴起了。刚在产品上增加了这一功能,发现确实是一种极好的分享传播方式。
生成的效果图太长,下拉在文末可以查看到
结合之前的调研,以及尝试走不通的路,以下整理了这个功能点相关的方案,希望提供你有用的参考。
继续阅读
提到敏感词过滤,经过简单思考,你没有想到Trie的话,那么你就不要思考了,这篇文章很适合你。如果你想到了,这篇文章也不失一篇很好的参考。
有经验的开发者都会说到用字典树来实现敏感词检测过滤等功能,字典树即本文所谈论的对象Trie。
他的别名除了字典树,还有很多:前缀树、单词查找树、键树。跟很多人一样,我也格外喜欢前缀树(Prefix Tree)这个昵称。
继续阅读
算法:
* 0、构建Trie树
* 1、遍历目标字符串中的每一个字符,如果字符不存在,继续下一个。
* 2、如果字符存在,从该字符下一个字符开始遍历,匹配成功后直接返回匹配字符长度,然后跳过这个长度并不是+1, 算是优化了【匹配到一个词后直接返回,没有往下找最长】,否则回到第1步
* 3、重复1-2
继续阅读
<div class="card-mod-title cmt-2"> <h4>趋势</h4> <p> <a href="javascript:;" class="m-active">小时榜</a> <a href="javascript:;" class="">日榜</a> <a href="javascript:;" class="">周榜</a> </p> </div>
一、原理
插入排序原理,通过构建有序序列,对于未排序的数据部分,在已排序的序列中从后往前扫描,找到相应的位置,逐个元素插入。类似于打扑克牌,取牌的过程。
二、算法
0、从第一个元素开始,认为该元素已被排序。
1、取下一个元素,在已经排序的元素序列中从后往前扫描。【取下一个元素这个表述特别赞,如果用第二个元素就不好表达后面的插入了】
2、如果该元素大于新元素,则后移该元素。
3、重复步骤2,直到找到小于、等于新元素的位置。
4、将新元素插入到该位置后。
5、重复步骤1-4。
继续阅读
最近面试了一些各种背景的同学,发现下面这题鲜有人答出来。题目看起来刁钻,实际上是对引用很好的考察。
一、题目和答案
题目如下(要求写出两次输出的结果):
$value = ['foo', 'bar', 'cat']; foreach($value as &$val) { // nothing to do } var_dump($value); foreach($value as $val) { // also nothing to do } var_dump($value); // the end of the script
本篇主要介绍git config常用操作。
继续阅读