正文内容加载中...
posted @ 2020-07-02 10:25 陶士涵 阅读(41) 评论(0) 推荐(0) 编辑
摘要:memcache作为key-value的内存缓存数据库 , 使用简单 , 运行稳定 , 在redis之前一直大量使用 , 新浪企邮webmail中也大量使用 共享session 在有多台后端负载服务器的情况下,php默认的文件存储session就不适用了,因为用户在访问的时候会访问到后端不同机器 , 阅读全文
posted @ 2020-07-01 11:12 陶士涵 阅读(11) 评论(0) 推荐(0) 编辑
摘要:基于GO语言实现的web客服即时通讯与客服管理系统。 1.使用gin http框架实现restful风格的API 2.使用jwt-go配合gin中间件实现无状态的jwt登陆认证 3.使用casbin配合gin中间件实现权限控制 4.使用gin以及template包的模板语法进行展示界面 5.使用go 阅读全文
posted @ 2020-06-28 21:42 陶士涵 阅读(37) 评论(0) 推荐(0) 编辑
摘要:php8的jit需要在编译opcache扩展的时候进行手动开启 比如我php8源码目录在此: /home/ubuntu/myphp/php-8.0.0alpha1/ext/opcache 执行 ./configure --enable-opcache-jit --with-php-config=/u 阅读全文
posted @ 2020-06-28 14:51 陶士涵 阅读(40) 评论(0) 推荐(0) 编辑
摘要:上次编译完php8 , 发现opcache扩展没有安装,那么就进入到源码目录下的ext目录执行phpize 比如我解压缩后的源码目录是 /home/ubuntu/myphp/php-8.0.0alpha1/ 进入 /home/ubuntu/myphp/php-8.0.0alpha1/ext/opca 阅读全文
posted @ 2020-06-27 11:21 陶士涵 阅读(51) 评论(0) 推荐(0) 编辑
摘要:在配置php的过程中经常遇到不知道php.ini文件在哪,以及不知道哪一个php.ini在起作用,改动了配置后依然不生效 可以有下面的方法去查找 php -i|grep php.ini strace -e open php -m 在这个命令里去查看php命令打开了哪个php.ini文件,非常的精确 阅读全文
posted @ 2020-06-27 11:17 陶士涵 阅读(45) 评论(0) 推荐(0) 编辑
摘要:nginx配置http块中增加 client_max_body_size 200m; php-fpm的php.ini配置文件中增加: upload_max_filesize = 200M 如果不知道fpm下的php.ini在哪,可以直接grep upload_max_filesize -R /etc 阅读全文
posted @ 2020-06-26 23:12 陶士涵 阅读(12) 评论(0) 推荐(0) 编辑
摘要:(麻烦各位转载请注明出处和地址:陶士涵的菜地 , 谢谢 --2020年6月28日) 所有操作需要在root用户下本机测试案例系统信息:ubuntu安装路径:/usr/local/php8 解压缩: wget https://downloads.php.net/~pollita/php-8.0.0al 阅读全文
posted @ 2020-06-26 20:14 陶士涵 阅读(264) 评论(2) 推荐(1) 编辑
摘要:编译安装php时,如果--enable-mbstring , 开启了mbstring扩展,需要这个正则处理库 centos yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//oniguruma5-6.9.4-1.el7.re 阅读全文
posted @ 2020-06-26 19:08 陶士涵 阅读(18) 评论(0) 推荐(0) 编辑
摘要:据PHP官网的消息: PHP 8.0.0 Alpha 1可用于测试 2020年6月25日 PHP团队很高兴宣布PHP 8.0.0的第一个测试版本Alpha1。这将启动PHP 8.0的发布周期,其粗略概述在PHP Wiki中进行了指定。 有关PHP 8.0.0 Alpha 1的源代码下载,请访问下载页 阅读全文
posted @ 2020-06-26 12:28 陶士涵 阅读(139) 评论(0) 推荐(0) 编辑
摘要:默认的wireshark是不能监听到127.0.0.1的网络通信的 , 需要安装一个软件就可以了 先安装这个npcap , 他会卸载本地原来的wincap等 , 不需要管. https://nmap.org/npcap/#download 然后重新打开wireshark , 就可以看到下面这个 这个 阅读全文
posted @ 2020-06-24 11:53 陶士涵 阅读(29) 评论(0) 推荐(0) 编辑
摘要:滑动窗口短信发送限流算法 1.有两条规则 基于IP的限制和基于手机号的限制 IP规则: 1分钟限制5 10分钟限制30 1小时限制50 手机号规则: 1分钟限制1 10分钟限制5 1小时限制10 2.滑动窗口就是随着时间的流动 , 进行动态的删减区间内的数据 , 限制时获取区间内的数据 最主要的是用 阅读全文
posted @ 2020-06-23 18:04 陶士涵 阅读(75) 评论(0) 推荐(1) 编辑
摘要:代码的包结构是在GOPATH环境变量目录中新建了bin src pkg三个目录 如果代码放在了github里 , 那么就在src目录下新建的 github.com/用户名/仓库名 这个目录下进行开发工作 gin框架现在已经更新到了1.6.0 , 对于后端开发打造restfull 的API接口 ,非常 阅读全文
posted @ 2020-06-21 12:14 陶士涵 阅读(78) 评论(0) 推荐(0) 编辑
摘要:在文档里有直接渲染一个html的文件 , 但是我的需求是渲染html的字符串 , 因为我的html要打包进二进制 , 不能只是外部文件的形式 engine := gin.Default() //登陆界面 engine.GET("/login",controller.PageLogin) engine 阅读全文
posted @ 2020-06-17 19:40 陶士涵 阅读(34) 评论(0) 推荐(0) 编辑
摘要:当使用golang开发一个网站时 , 一般是需要部署下静态文件的资源 ,go只是提供接口 , 打包完的go二进制文件不包含静态文件资源 但是当做一个小型的应用时还要再部署静态资源显得比较麻烦 , 这个时候可以使用packr这个包来把静态资源直接打包进二进制里 包的github地址是 https:// 阅读全文
posted @ 2020-06-16 20:02 陶士涵 阅读(61) 评论(0) 推荐(0) 编辑
摘要:js中进行测试捕获正则小括号中的子表达式,可以用下面这个捕获组来实现 捕获组的定义:捕获组简单来说就是把正则表达式中用括号匹配的内容,保存到内存中,方便调用。js中每一个括号匹配的内容可以被RegExp对象捕获到(最多匹配九个,可以通过返回一个数组索引来取得所有的括号匹配项.),存储在RegExp. 阅读全文
posted @ 2020-06-16 16:41 陶士涵 阅读(19) 评论(0) 推荐(0) 编辑
摘要:在查看一篇滑动窗口实现的限流算法时 , 代码中使用的redis , 就使用到了这个命令 目的是删除集合中范围以外的元素 但是在看文档的时候,文档中的实例令人不能理解 这里的alpha和omega是啥意思 , 完全看不懂 ,也没有地方解释 ,如果是按名称范围删除 从alpha开始删 ,omega不存在 阅读全文
posted @ 2020-06-11 11:16 陶士涵 阅读(29) 评论(0) 推荐(0) 编辑
摘要:想要获取某个目录下以sess_开头的所有文件 , 如果是linux下可以直接sess* , go标准库中也有同样的函数可以实现 files,_:=filepath.Glob("/sess_*") files就是全部的文件列表 , 直接for range循环就可以了 要对winows和linux分开处 阅读全文
posted @ 2020-06-10 18:58 陶士涵 阅读(55) 评论(0) 推荐(0) 编辑
摘要:在一个聊天的界面中 , 当我们固定了高度 , 并且设置了overflow:auto ,会出现滚动条 , 但是填充数据后 ,滚动条是不会跟着滚,数据隐藏在下面 这个时候需要把这块div的scrollTop设置为它的scrollHeight this.$nextTick(() => { $('.chat 阅读全文
posted @ 2020-06-09 14:17 陶士涵 阅读(42) 评论(0) 推荐(0) 编辑
摘要:在vuejs框架中使用websocket , 可以比较方便的运用到vuejs框架的响应式系统 , 以及一些简单的生命周期函数 var app=new Vue({ el: '#app', data: { server:"ws://127.0.0.1:8080/chat_server", socket: 阅读全文
posted @ 2020-06-08 15:21 陶士涵 阅读(99) 评论(0) 推荐(0) 编辑
摘要:特此声明 此文章测试一下百度搜索排名情况 作为首批“Egret顶级开发者”之一,同时是武汉炫幕网络技术总监,一个以“卖白菜”自居的技术老兵,历经从ASP、FLASH 、H5、 再到PHP等多种技术语言的转型,免费为开发者提供了很多实用干货。每次技术转型的背后都经历了怎样的努力和尝试?分享达人又是怎样 阅读全文
posted @ 2020-06-08 12:04 陶士涵 阅读(26) 评论(0) 推荐(0) 编辑
摘要:简单地说,当开启session_start以后,这个session会一直开启,并且被一个用户使用。其他用户开启session的话要等待第一个session用户关闭以后才可以开启session,这样就造成了session阻塞。而session_write_close()可以解决这个session阻塞机 阅读全文
posted @ 2020-06-04 10:25 陶士涵 阅读(31) 评论(0) 推荐(0) 编辑
摘要:当使用curl传递post数据时 , 数据的字段如果是个数组,就会报错Array to string conversion 在调用curl_setopt_array($curl, $options); 调用curl_setopt($ch, CURLOPT_POSTFIELDS, $data) 这两处 阅读全文
posted @ 2020-06-04 10:15 陶士涵 阅读(33) 评论(0) 推荐(0) 编辑
摘要:当使用elementui下的布局进行分栏时 , 加了间隔 ,看到样式里是使用的padding来进行的左右间隔 当把背景颜色加在col上时 ,就会问题 ,需要在col里面再建一层div,在这个div上进行加背景颜色和加内部的间距 不要在col上加 样式 <el-row :gutter="5"> <el 阅读全文
posted @ 2020-06-02 22:31 陶士涵 阅读(57) 评论(0) 推荐(0) 编辑
摘要:go语言中的零值是变量没有做初始化时系统默认设置的值 var b bool // bool型零值是falsevar s string // string的零值是"" 以下六种类型零值常量都是nilvar a *intvar a []intvar a map[string] intvar a chan 阅读全文
posted @ 2020-06-02 12:59 陶士涵 阅读(34) 评论(0) 推荐(0) 编辑
摘要:在一个http服务中 , 如果要定义一些参数比如读超时时间 , 写超时时间 , 那么用最简单的http.ListenAndServe 就不能实现了 需要自己实例化http.Server结构体 ,实例化完成以后 , 之前的路由怎么加进去又是一个问题 http.Server中处理请求响应是通过属性里的H 阅读全文
posted @ 2020-05-31 15:57 陶士涵 阅读(35) 评论(0) 推荐(0) 编辑
摘要:在页面上有一个时间插件 , 默认是没有绑定初始时间的 , 当需要绑定初始时候时 , 只能给它赋值当前日期的Date对象 但是在调用接口的时候 , 要求传递的是一个指定格式的字符串 , 需要把Date对象转成时间字符串 , 这个时候就需要判断类型了 typeof 一般只能返回如下几个结果:"numbe 阅读全文
posted @ 2020-05-29 17:53 陶士涵 阅读(33) 评论(0) 推荐(0) 编辑
摘要:把一个Date对象的js日期 , 格式化为比如20200529形式 , 可以参考这个函数 //格式化时间 formateTime(t){ if(t instanceof Date){ let year = t.getFullYear(); let month = t.getMonth()+1; mo 阅读全文
posted @ 2020-05-29 16:39 陶士涵 阅读(52) 评论(0) 推荐(0) 编辑
摘要:在展示大量文本的时候,很多网站会在页面上出现一个展开全文的文字按钮 , 点击这个按钮才会展开全部内容 . 使用jquery比较容易实现 , 最开始我想直接根据vuejs的语法来实现效果 , 结果失败 , 还是jq做起来简单 思路是 , 获取当前文本的div高度 ,超过一定高度就增加一个class值 阅读全文
posted @ 2020-05-29 14:27 陶士涵 阅读(123) 评论(0) 推荐(0) 编辑
摘要:当在一个循环里面 , 展示了一堆按钮 , 点击按钮时当前的按钮处于选中状态 . 比如在elementui下的这个地方 , 并且还有一个折叠展开效果 代码: <el-collapse> <el-collapse-item name="1"> <template slot="title"> <el-ta 阅读全文
posted @ 2020-05-28 19:23 陶士涵 阅读(58) 评论(0) 推荐(0) 编辑
摘要:发邮件功能可以调用比如: qq 163 新浪的邮箱进行发送 , 使用go-smtp这个类库来发送比较简单 , 例如下面的例子: package tools import ( "github.com/emersion/go-sasl" "github.com/emersion/go-smtp" "st 阅读全文
posted @ 2020-05-26 19:49 陶士涵 阅读(31) 评论(0) 推荐(0) 编辑
摘要:如果解析json时 , 把json解析到map[string]interface , 那值所对应的真正类型是下面这样的 bool, for JSON booleans float64, for JSON numbers string, for JSON strings []interface{}, 阅读全文
posted @ 2020-05-25 19:28 陶士涵 阅读(76) 评论(0) 推荐(0) 编辑
摘要:当传参数的时候 ,为了方便 ,参数的类型定义成了interface{} , 如果要给这个原类型的属性赋值 , 就需要强转回去 例如下面的代码: func RenderList(w http.ResponseWriter, render interface{}) { header := tools.F 阅读全文
posted @ 2020-05-23 17:35 陶士涵 阅读(50) 评论(0) 推荐(0) 编辑
摘要:如果直接分配到模板中html的字符串 , 会被转码 , 需要强制把字符串转换成template.HTML类型 , 例如下面这样: header := tools.FileGetContent("html/header.html") html := tools.FileGetContent("html 阅读全文
posted @ 2020-05-23 17:28 陶士涵 阅读(28) 评论(0) 推荐(0) 编辑
摘要:遇到未定义的变量 , 判断是一定要区分出来 , 备注一下: if(typeof(page)=="undefined" || page==""){ } if(typeof(fid)!="undefined" && fid!=""){ } 阅读全文
posted @ 2020-05-23 16:53 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:此处备注一下 , 通过Request实例中获取URL , 然后调用URL的方法就可以了 //获取URL的GET参数 func GetUrlArg(r *http.Request,name string)string{ var arg string values := r.URL.Query() ar 阅读全文
posted @ 2020-05-23 16:41 陶士涵 阅读(161) 评论(0) 推荐(0) 编辑
摘要:媒资库负责帮海广监控特定媒体大号及指定关键词对应的实时博文,根据舆情关键字进行异常提醒,并支持快捷的一键发布至CMS系统,实现快捷的内容转载及新浪媒资内容的二次消费。 基于vuejs前端框架下的elementui进行开发 , 使用布局容器和栅格布局实现系统的整体页面框架 使用vuejs的事件模型,响 阅读全文
posted @ 2020-05-22 14:37 陶士涵 阅读(15) 评论(0) 推荐(0) 编辑
摘要:官网文档里有介绍 , 但是加上事件后不管用 , 此处备注一下要加.native 例如下面的例子: <el-input placeholder="在信息流中搜索关键词" v-model="weiboSearch" v-on:keyup.enter.native="searchWeibo" class= 阅读全文
posted @ 2020-05-21 16:06 陶士涵 阅读(57) 评论(0) 推荐(0) 编辑
摘要:当在编译打包文件时,有时候html文件需要编译进二进制 , 可以使用这个包 github.com/gobuffalo/packr 当使用了go.mod的话 , 直接在代码中引入使用就行 , 运行或者编译时会自动把依赖下载下来 box := packr.NewBox("../static") cont 阅读全文
posted @ 2020-05-19 21:56 陶士涵 阅读(64) 评论(0) 推荐(0) 编辑
摘要:主要是使用了form组件 <html lang="cn"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <me 阅读全文
posted @ 2020-05-19 19:26 陶士涵 阅读(54) 评论(0) 推荐(0) 编辑