使用 vscode 插件实现 leetcode 刷题

一般刷算法题我都是去leetcode官网,但每次都要去网页提交代码,想练习的时候还是有点麻烦,看到vscode有刷题插件就来推荐了。为了能正常使用该插件,需要先安装node。 可以直接去vscode搜索leetcode,一般排在第一的是下载量最高的,点击直接安装。 下载完之后设置节点: 这里选择中国节点: 设置好之后按shift+ctrl+p,在输入框输入leetcode,然后选择登录: 这里推荐使用cook...

[阅读更多 →]

Docker 实战:基础操作

最近的工作都要操作Docker,无论是在家里还是在公司,已经不用集成环境了,而且Docker还是部署在测试服务器上,本地只写代码,然后部署运行。早期我用过PHPStudy和Laragon,但后面需要操作的项目有点多,渐渐不能满足需求了,比如本地有的项目不支持php7以上版本,有的不能支持mysql8,或者想测试项目能不能在php8运行,如果用集成环境不是很方便,不能同时运行其它版本的应用。加上现在微服务很流行,微服务...

[阅读更多 →]

PHP 远程调试最佳实践

一般PHP开发环境是以本地环境为主的,少数人会用测试服务器做开发环境。当项目切换到正式环境时,有时为了测试线上某功能,或者修复bug时,以前都是通过写日志或者打印调试(如:var_dump),如果项目访问量很少,测试目标数据不多时,用这种方式调试问题不大。但是如果测试的数据比较多,那调试起来很繁琐,不断切换位置打印或写日志调试,很浪费时间。 遇到的问题 要实现PHP远程打断点调试,首先需要解决最大的问题是服务器怎么访...

[阅读更多 →]

golang 并发编程

CPU基本概念 要了解golang的并发编程,需要先简单了解cpu是什么? cpu是计算机的“大脑”,不仅能实现基本算术运算,还能通过总线控制和协调电子配件的输入和输出。我们编写的程序代码,比如打印语句,最终是由cpu从内存中取得指令、解码、执行。cpu执行指令速度非常快,通常执行一条指令只需要零点几纳秒。 早期的计算机是单核的,计算机设计师在设计体系结构为了能让处理器跑得更快,把cpu设计为交替地取得和执行指令。简...

[阅读更多 →]

PHPStorm 远程连接 Docker

服务器安装Docker后需要开启2375端口给外网访问,但是直接开启会有安全隐患,最好使用CA证书,为了方便操作,我直接弄了个shell文件,下载后直接在服务器上运行,运行成功后可以在/usr/local/ca目录下查看证书,并把ca.pem、cert.pem和key.pem下载到本地,等下要在PHPStorm上配置。 修改Docker配置 vi /lib/systemd/system/docker.service ...

[阅读更多 →]

简单用 golang 做并发爬虫

对于没有接触过swoole的PHP开发者,可能对于并发编程或异步编程比较陌生。并发编程就是在短时间内完成多个任务,以往我们都是一个任务完成后,再完成下一个任务。比如接下来采集的网站,我是分几个小模块进行处理,首先先采集章节的链接,然后在根据章节的链接获取内容,最后再把获取到的内容写到文件里。 安装依赖包 github.com/PuerkitoBio/goquery 处理文档,类似Jquery github.com/...

[阅读更多 →]

Golang 练手系列 002-模板循环数据

模板的{{range}}与Go语法里面的range类似,循环操作数据。 跟第一章一样,先定义路由和对应的处理函数,不同的是就是创建模板的步骤,因为模板里如果要注入函数,必须在在调用ParseFiles函数前注入函数,否则会报模板错误。 func Number(number int) int { return number + 1 } funcMap := template.FuncMap{"number": ...

[阅读更多 →]

Golang 练手系列 001-引入静态模板

大部份做了几年的PHP程序员都会打算学多一门编程语言,很多都选择Golang或Python,相比之下我比较喜欢Golang,现在想通过一些小案例来练手,也希望对大家有帮助。 Go自带http库,包含对路由的处理,比PHP处理起来方便多了。 路由定义 首先先定义路由处理函数: func handleHome(w http.ResponseWriter, r *http.Request){ } 然后定义路由并绑定到刚刚...

[阅读更多 →]

golang 判断字符是否为汉字

Golang判断字符是否为汉字,主要有两种方式,一种是使用正则匹配,另外一种是使用系统自带的unicode包。 正则匹配 var str := "你好,Golang" var hzRegexp, _ = regexp.Compile("([\u4e00-\u9fa5]+)") fmt.Println(hzRegexp.MatchString(str)) 运行结果是true,如果要查找子匹配项,可以这样找: sub :...

[阅读更多 →]

CentOS 搭建 Jenkins

PHP入行好几年了,至今还不懂持续集成和持续交付,就是前几天在群里有人发了Jenkins才知道有这么方便的东西,然后自己找了一台Linux服务器来搭建Jenkins,另外TeamCity和GitLab也挺强大的。 安装Java JDK 首先要在服务器上安装Java JDK,我这边安装的是1.8版本。解压文件后,打开 /etc/profile,在最后加上 export JAVA_HOME=/usr/java/jdk1....

[阅读更多 →]

使用 audio 标签实现语音播报 (一)

audio标签可以实现音频的播放功能,可以在html的底部加上 <audio id="audio" autoplay="autoplay"> 然后利用js加上src属性,并使用play()实现自动播放功能 let url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=" + encodeURI(content); let a...

[阅读更多 →]

Mui 激活底部导航状态

mui是通过mui-active的class属性来激活选中状态,例如: <router-link class="mui-tab-item mui-active" :to="{name:'member'}"> <span class="mui-icon icon-myhuiyuan"></span> <span class="mui-tab-lab...

[阅读更多 →]