02 2021 档案
摘要:极简强大Go语言开发在线客服GOFLY0.3.2发布 更新日志: V0.3.2 1.修改访客界面样式,更加简洁扁平 2.修改自动欢迎界面样式增加聊天框效果 3.修改数据库时间字段类型,兼容mysql5.7 4.修复数据库执行sql获取错误信息 V0.3.1 1.修改在线咨询浮框样式 2.修改数据库时
阅读全文
摘要:当php代码要对外请求多个接口的时候 , 可以使用下面的方式并行执行多个请求 主要是使用curl_multi_exec函数实现 代码中请求的test.php文件 , 是sleep(10)秒 如果按传统的逐行执行的方式 , 请求两次这个接口代码会阻塞20秒的时间 , 现在使用同时并行执行的方式,代码只
阅读全文
摘要:使用redis进行频率限制 , 并且使用滑动窗口形式 , 可以防止临界点时的超频 代码在下面 ,请自行替换new Redis()对象 function check($queueName,$count,$timeWindow){ $currTime=time(); $redis = php-redis
阅读全文
摘要:将xml数据转为php数组 , 函数备忘 function xml2array($element, $arr = array()) { if(is_string($element)) { $element = (strlen($element) > 5 && substr($element, -4)
阅读全文
摘要:数据文件下载地址: https://files.cnblogs.com/files/taoshihan/citys.zip
阅读全文
摘要:MYSQL5.5支持utf8mb4,MYSQL5.1并不支持“utf8mb4”。 当连接数据库时 , 如果指定了utf8mb4 , 那么会出现的错误代码为: Error 1115: Unknown character set: 'utf8mb4' 会出现utf8mb4不兼容的情况。 所以如果想使用u
阅读全文
摘要:最新版go不一定是1.16,安装方法一样,在这里找到最新版本的go压缩包 https://studygolang.com/dl 原文 下载目录:https://studygolang.com/dl 32位选 go1.16.linux-386.tar.gz64位选 go1.16.linux-amd64
阅读全文
摘要:极简强大Go语言开发在线客服GOFLY0.2.9发布 更新日志: 1.访客开多个窗口时 , 单点登录关闭旧ws连接 2.访客切换窗口时可以自动重连 3.访客到来时 , http接口和ws接口同时发送给客服上线信息 4.客服后台定时拉取在线访客接口 5.客服后台切换tab拉取在线访客 下载地址: ht
阅读全文
摘要:先上结论PHP不支持方法重载和只支持方法覆盖 所谓方法重载是指 , 方法名相同 , 参数不相同 , 这时候是表示两个方法 ,传不同的参数调用不同的方法 PHP如果在同一个类里面的两个方法 , 方法名相同会报错 redeclare 重复定义 如果是在子类和父类的相同 , 那么就会覆盖父类的方法 , 不
阅读全文
摘要:本文转载,目的方便查阅 01介绍 Golang 1.16 已经正式发布了,其中 Modules 有一些变化: 默认开启 Modules。 不自动修改 go.mod 和 go.sum。 通过指定 @version 后缀安装特定版本可执行文件。 新增 retract 指令撤回 Module 版本。 使用
阅读全文
摘要:在设计数据库的时候经常定义varchar字段 ,但是详细的区别还真不是特别清楚 char的长度是不可变的,而varchar的长度是可变的。 定义一个char[10]和varchar[10]。 如果存进去的是‘tao’,那么char所占的长度依然为3,除了字符‘tao’外,后面跟7个空格,varcha
阅读全文
摘要:先上结论 , 咱们默认人读字节时 , 从右往左读 , 这就是小端序 , 因为计算机处理的时候会从低位到高位处理 , 和人的习惯正好相反 本文转自公众号:网管daobidao 字节序,又称端序或尾序(英语中用单词:Endianness 表示),在计算机领域中,指电脑内存中或在数字通信链路中,占用多个字
阅读全文
摘要:首先要了解MVCC,MVCC叫做多版本并发控制,实际上就是保存了数据在某个时间节点的快照。 我们每行数实际上隐藏了两列,创建版本号,过期(删除)版本号,每开始一个新的事务,版本号都会自动递增。 拿user表举例子,假设我们插入两条数据,他们实际上应该长这样 , 创建版本号是递增的。 idnamecr
阅读全文
摘要:使mysql表支持存储表情字符需要注意以下几个字符编码的处理: 数据库编码可以是 utf8mb4 表的编码是 utf8mb4 表中内容字段是 utf8mb4 连接数据库时是 utf8mb4 例如go连接mysql : 这里的dsn有字符指定 sql.Open("mysql", db.Dsn) 插入语
阅读全文
摘要:在使用标准库的base64 decode时会出现非法字符的错误 , 下面这个函数是我测试可以正常解密的 注意这个参数 : base64.RawStdEncoding 是解决非法字符的关键 func Base64Decode(str string) string { reader := strings
阅读全文
摘要:在手机端经常有这样的需求 , 最下面是输入框类似微信输入框 , 我们一般设置成了position:fixed 但是当点击到输入框的时候, 软键盘弹出来遮挡了输入框 其实解决这个问题非常简单 , 那就是让body滚动到最底部 , 我们给个滚动最大值就可以了 例如下面的jquery: $(window)
阅读全文
摘要:使用正则表达式可以非常方便的进行复杂的字符串的替换 例如常见需求 , 把手机号12323432342 中间四位换成* $telphone=preg_replace("/(\d{3})(\d+)(\d{4})/",'$1****$3',"12323422342"); 把IP地址后面两位换成* 124.
阅读全文
摘要:直接使用go-smtp包 ,为了防止乱码 , 主题subject进行了base64编码 import ( "encoding/base64" "github.com/emersion/go-sasl" "github.com/emersion/go-smtp" "strings" ) func Se
阅读全文
摘要:java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。 因
阅读全文
摘要:首先接口和抽象类的设计目的就是不一样的。接口是对动作的抽象,而抽象类是对根源的抽象。对于抽象类,比如男人,女人这两个类,那我们可以为这两个类设计一个更高级别的抽象类--人。对于接口,我们可以坐着吃饭,可以站着吃饭,可以用筷子吃饭,可以用叉子吃饭,甚至可以学三哥一样用手抓着吃饭,那么可以把这些吃饭的动
阅读全文
摘要:本文摘自labuladong算法小抄 , 使用go语言描述 我们公众号的成名之作 学习数据结构和算法的框架思维 中多次强调,先刷二叉树的题目,先刷二叉树的题目,先刷二叉树的题目,因为很多经典算法,以及我们前文讲过的所有回溯、动归、分治算法,其实都是树的问题,而树的问题就永远逃不开树的递归遍历框架这几
阅读全文
摘要:有些接口需要增加header头信息 , 里面传递token , 这个时候就要求在post的时候能传递自己的header信息 func PostHeader(url string, msg []byte, headers map[string]string) (string, error) { cli
阅读全文
摘要://Post("http://xxxx","application/json;charset=utf-8",[]byte("{'aaa':'bbb'}")) func Post(url string, contentType string, body []byte) (string, error)
阅读全文
摘要:按照文档要求 bool, for JSON booleans float64, for JSON numbers string, for JSON strings []interface{}, for JSON arrays map[string]interface{}, for JSON obje
阅读全文
摘要:获取当前时间戳的函数 , 默认有秒和纳秒 , 毫秒需要处理一下 , 转成字符串需要转换一下 fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix()) fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano()) fmt.Prin
阅读全文
摘要:很常见的需求 import "strconv" //先导入strconv包 // string到intint, err := strconv.Atoi(string) // string到int64int64, err := strconv.ParseInt(string, 10, 64) // i
阅读全文
摘要:项目中经常使用的md5和sha256加密函数 //md5加密 func Md5(src string) string { m := md5.New() m.Write([]byte(src)) res := hex.EncodeToString(m.Sum(nil)) return res } //
阅读全文
摘要:在使用很多函数的时候需要传入string字符串 , 但是函数参数类型是io.Reader , 这时候就需要将string转换为Reader类型 例如下面的: strings.NewReader("aaaa") NewReader返回从读取的新Reader。 它类似于bytes.NewBufferSt
阅读全文
摘要:官方文档里的代码有点点问题 , 可以按照下面这样延时去调用plus的代码 , 等待plus加载完毕 另外增加上条件编译 , 只有在app下面这段代码才会编译 //#ifdef APP-PLUS // 页面加载时触发 setTimeout(function(){ if(plus){ var pinf
阅读全文
摘要:本文来自labaladong的算法小抄 , 使用GO语言重新描述代码部分 寻找回文串的核心思想是从中心向两端扩展: func Palindrome( s string,l,r int)string { str:=[]rune(s) for l>=0 && r < len(str) && str[l]
阅读全文
摘要:注意当json_encode中文的时候 , 默认是以unicode编码的 , 如果想变成中文需要增加参数JSON_UNESCAPED_UNICODE 但是JSON_UNESCAPED_UNICODE参数是php5.4以上才支持的 所以可以使用下面这段代码: function json_encode2
阅读全文
摘要:自己的ID是自动获取的 ,然后输入对方的ID , 对方的ID可以这样获取 , 再打开新的浏览器或者手机也可以 原理是 利用js的h5新特性获取摄像头视频流, 通过peerjs的服务交换双方的信息 , 然后使用浏览器的webrtc特性进行点对点通信 , 这个时候是不需要中间服务器的 代码如下: <ht
阅读全文