技术饭 通过ghostscript将pdf转成图片

需要将pdf转成图片有很多种方式,对于php来说可以通过 ImageMagick 扩展来实现,ImageMagick 主要是处理一系列图片处理,但是如果需要支持pdf转图片需要用到 ghostscript 依赖来实现转换。ImageMagick >= 6.2.4 is required. The amount of file formats supported by Imagick depends entirely upon the amount of formats supported by your ImageMagick installation. For example, Imagemagick requires ghostscript to conduct PDF operations.

阅读全文 » 16天前
2024年04月09日

生活札记 golang学习笔记 - helper辅助函数(六)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。Golang没有提供类似PHP的内置函数,所以很多时候需要自行整理成一个辅助方法库。

阅读全文 » 372天前
2023年04月19日

生活札记 pytest框架、Appium之自动化测试(三)

pytest 可以用来做系统测试的自动化,它的特点有:用Python编写测试用例,简便易用、可以用文件系统目录层次对应手工测试用例层次结构、灵活的初始化清除机制、可以灵活挑选测试用例执行、利用第三方插件,可以生成不错的报表。Appium 是一个移动 App (手机应用)自动化工具。Appium 自动化方案的特点:开源免费、支持多个平台iOS (苹果)、安卓 App 的自动化都支持、支持多种类型的自动化、支持苹果安卓应用原生界面的 自动化、支持应用内嵌WebView的自动化、支持手机浏览器中的web网站自动化、支持flutter应用的自动化、支持多种编程语言、像 Selenium一样,可以用多种编程语言调用它开发自动化程序。

阅读全文 » 396天前
2023年03月26日

生活札记 Fiddler抓包、JMeter性能测试、Postman接口调试工具之自动化测试(一)

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果。

阅读全文 » 403天前
2023年03月19日

生活札记 Docker+K8S+Devops零基础入门教程之K8S

Kubernetes也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。

阅读全文 » 435天前
2023年02月15日

生活札记 Docker+K8S+Devops零基础入门教程之Docker

docker是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。docker images | grep hello | awk '{print $2}'

阅读全文 » 442天前
2023年02月08日

技术饭 微信分享:分享签名、分享链接需要注意的细节

微信分享JSSDK在1.4.0之后,废弃了很多的方法如:onMenuShareTimeline、onMenuShareAppMessage、onMenuShareQQ等,取而代之的是:自定义“分享给朋友”及“分享到QQ”按钮的分享内容(updateAppMessageShareData)、自定义“分享到朋友圈”及“分享到 QQ 空间”按钮的分享内容(updateTimelineShareData)

阅读全文 » 470天前
2023年01月11日

技术饭 Git:fatal: No url found for submodule path ‘xxx/xxx‘ in .gitmodules gitsubmodule子仓库无法拉取问题

Git:fatal: No url found for submodule path ‘xxx/xxx‘ in .gitmodules gitsubmodule子仓库无法拉取问题,报错:golang.org/x/mod/semver: gitee.com/DXTeam/idea-go.git@v0.0.0 (replaced by ./submodule/idea-go.git): reading submodule\idea-go.git\go.mod: open F:\wnmp\wwwgit\auth\submodule\idea-go.git\go.mod: The system cannot find the file specified.

阅读全文 » 638天前
2022年07月27日

生活札记 golang学习笔记 - goquery、zookeeper、kafka、k8s、fyne、etcd(五)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。golang学习笔记 - 爬虫(goquery)、zookeeper(分布式的服务配置管理系统)、kafka(消息中间件)、k8s(容器集群管理)、fyne(GUI框架)、etcd(分布式存储)(五)

阅读全文 » 706天前
2022年05月20日

生活札记 golang学习笔记 - 标准包、依赖(四)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。

阅读全文 » 708天前
2022年05月18日

生活札记 golang学习笔记 - 高阶(三)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。

阅读全文 » 709天前
2022年05月17日

生活札记 golang学习笔记 - 基础(二)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。

阅读全文 » 709天前
2022年05月17日

生活札记 golang学习笔记 - 入门(一)

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。Go 是谷歌支持的开源编程语言,易于学习和入门,内置并发和强大的标准库,不断发展的合作伙伴、社区和工具生态系统。

阅读全文 » 713天前
2022年05月13日

技术饭 PHP中ElasticSearch的简单使用

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

阅读全文 » 784天前
2022年03月03日

技术饭 腾讯云Elasticsearch Service出现:No alive nodes found in your cluster 提示

腾讯云Elasticsearch Service出现:No alive nodes found in your cluster 提示,访问控制的ip已经添加了,但是我们有的机器可以访问有的不能访问这个?本地使用phpstudy工具访问Elasticsearch Service,出现部分电脑可以部分电脑不行,按照了wnmp的却一直都是正常的,初步排查是本地环境配置导致。

阅读全文 » 793天前
2022年02月22日

技术饭 php函数getimagesize()函数获取腾讯云对象存储图片信息太慢解决办法

php函数getimagesize()函数获取腾讯云对象存储图片信息太慢,导致接口返回超过了5s,这个体验太不好了,按照正常逻辑:想获取图片信息,当然是用getimagesize()函数,对于getimagesize()函数而言本地服务器的文件读取相对是比较快的,但是远程的图片就太慢了,必须先现在到本地服务器,然后再获取,如果有的图片很大,那这个下载速度可想而知的慢。

阅读全文 » 890天前
2021年11月17日

技术饭 layer.prompt输入框改成laydate时间控件

layer.prompt输入框改成laydate时间控件,layui官方文档的解释:prompt的参数也是向前补齐的。options不仅可支持传入基础参数,还可以传入prompt专用的属性。当然,也可以不传。yes携带value 表单值index 索引elem 表单元素,输入框类型,支持0(文本)默认1(密码)2(多行文本),没有直接输入dom内容的方式。但是网上找到一个是formType:3的类型,测试可以。

阅读全文 » 950天前
2021年09月18日

技术饭 vscode1.60版本不支持:terminal.integrated.shell.windows

vscode1.60版本不支持:terminal.integrated.shell.windows,旧版VScode 的 git bash 终端配置如下:"terminal.integrated.shell.windows": "D:\\Program Files\\Git\\bin\\bash.exe",当VSCode升级至1.57.1(2021.6.17)时,会出现警告提示:此项已弃用,配置默认 shell 的新推荐方法是在 #terminal.integrated.profiles.windows# 中创建一个终端配置文件,并将其配置文件名称设置为 #terminal.integrated.defaultProfile.windows# 中的默认值。此操作当前将优先于新的配置文件设置,但将来会发生更改。

阅读全文 » 964天前
2021年09月04日

技术饭 解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题

解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题,现象:1、两个https的二级域名解析在同一台服务器上,端口都是443;2、前端域名与接口域名同时在同一个浏览器打开,接口域名登录后台生成PHPSESSID,保存了登录状态;3、前端域名请求接口域名生成验证码,验证保存在session里面,由于访问接口,每次的会话session_id都是不一致,为了实现跨域验证码的验证,这个时候需要在接口端设置session_id(随机数),然后把这个随机值返回给前端,到时候验证的时候再设置session_id(随机数),这样会话才能保持一致,验证码才能通过验证;4、由于步骤3设置session_id(随机数)重新生成PHPSESSID后,导致了步骤2登录后台的PHPSESSID被改成了步骤3设置的PHPSESSID,这时候步骤2的登录状态就消失了,直接退出登录。

阅读全文 » 985天前
2021年08月14日

技术饭 腾讯云redis通过iptables转发实现外网访问

最近项目做迁移,买了腾讯云的redis服务,发现官方是不提供外网访问的权限,而建议直接走内网的方式,但是平时也要管理redis,所以还是需要开通外网来支持redis的外网访问。那么官方提供外网的访问方式是通过iptables转发实现外网访问。

阅读全文 » 993天前
2021年08月06日

技术饭 PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。

PHP简单对称加密算法之加密、简单对称加密算法之解密,以及简单的混淆加密。平时我们使用的PHP加密方法都是一些不可逆的加密函数为:md5()、sha1()、crypt()等。md5() 用来计算 MD5 哈稀。语法为:md5(); crypt() 将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。可逆转的加密有:base64_encode()、urlencode() 相对应的解密函数:base64_decode() 、urldecode() 。base64_encode() 将字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输。 它的解密函数为:base64_decode(); 将复回原样。urlencode() 将字符串以 URL 编码。例如空格就会变成加号。它的解密函数为:urldecode(); 将复回原样。

阅读全文 » 1242天前
2020年11月30日

技术饭 ajax跨域:origin has been blocked by CORS policy Response to preflight request doesn't pass access control check

ajax跨域:origin has been blocked by CORS policy Response to preflight request doesn't pass access control check,CORS策略已阻止从原点' http//localhost62797 '访问' http://api.bigcommerce.com/stores/4jwabif3gj/v2/orders.json '处的XMLHttpRequest :对预检请求的响应未收到通过访问控制检查:飞行前请求不允许重定向。

阅读全文 » 1258天前
2020年11月14日

技术饭 Group by 查询时的ONLY_FULL_GROUP_BY错误解决方案

mysql使用group_by的时候报错:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'cis.q1.query_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by。

阅读全文 » 1259天前
2020年11月13日

技术饭 TP5使用unlink删除文件报错:Resource temporarily unavailable

TP5使用unlink删除文件报错:Resource temporarily unavailable,今天在TP5内使用unlink删除上传图片的时候报错了。情况是 $info = $file->move();获得 $info 变量后 $info->getRealPath() 通过该方法获取上传文件真实路径,然后直接unlink时报错 Resource temporarily unavailable

阅读全文 » 1275天前
2020年10月28日

技术饭 /var/mail/root 定时任务crontab生成日志文件太大的处理方案,You have new mail in /var/spool/mail/root

之前讲过聊过 file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space,磁盘空间不足这个问题,解决方法是删除 /var/mail/ 下的root日志日志文件,可是过不了多久又满了,所以只能从源头去禁止生成定时任务生成的日志才能彻底的解决问题。有时候处理的时候还会出现:You have new mail in /var/spool/mail/root的报错。

阅读全文 » 1294天前
2020年10月09日

技术饭 vue.js前端获取thinkphp5.1后端api接口的验证码,验证码一直验证失败

最近需要做验证码接口,前端使用的vue.js接收,遇到如下问题:thinkphp5.1框架默认生成的验证码是session方式给到前端用户,验证码图片生成没有问题,出现问题是在验证验证码的步骤:每次验证都是显示验证码错误。测试了才知道api接口模式,访问不同接口的生成才session_id是不一样的,所以导致生成验证码与确认验证码的接口两个session_id不一致,那么解决问题的方式就是设置同一个session_id就可以了。

阅读全文 » 1314天前
2020年09月19日

技术饭 file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space,磁盘空间不足

访问网站系统报错:file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space。意思就是磁盘空间不足,df -lh 查了一下,确实是发现磁盘满了,想想应该是日志文件太大了,所以删除项目的runtime下的文件释放空间就可以了。

阅读全文 » 1314天前
2020年09月19日

技术饭 百度地图API报{"status":240,"message":"APP 服务被禁用"},APP服务被禁用

使用百度地图API进行逆地理编码时发现将新建的服务端AK填入到URL中进行访问时返回{“status”:240,“message”:“APP 服务被禁用”};百度给出的结论是自己创建AK时的设置有问题,实际检查设置没有问题;后来发现是新的用户接口更改了了。

阅读全文 » 1347天前
2020年08月17日

技术饭 think\cache\Driver::unserialize()经常报Error at offset... bytes这样的错误

think\cache\Driver::unserialize()经常报Error at offset... bytes这样的错误,这几天做了抢红包的活动,请求高并发之后,程序出现了报错,数据无法写入数据库,查询调试发现报的错误是:unserialize(): Error at offset 284217 of 284296 bytes,后来是清除了缓存才解决了问题,可是问题是总不能一直清除缓存吧!!!

阅读全文 » 1349天前
2020年08月15日

技术饭 ES6的promise的介绍

1.Promise:即异步通信编程的一种解决方案,它比传统回调式更加的强大;2.ES6 之前非常多层次嵌套的同步、异步,执行顺序混乱且不好维护;3. Promise 就很好的解决了这些问题,我们先了解一下它的语法:

阅读全文 » 1422天前
2020年06月03日

技术饭 首先要知道export,import ,export default是什么

ES6模块主要有两个功能:export和import:1、export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口;2、import用于在一个模块中加载另一个含有export接口的模块也就是说使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。这几个都是ES6的语法。

阅读全文 » 1450天前
2020年05月06日

技术饭 Git 使用中显示“Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. P”问题解决

fatal: Unable to create 'F:/wnmp/www/gittest/.git/index.lock': File exists.,Git提示存在index.lock被锁住,Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.

阅读全文 » 1463天前
2020年04月23日

技术饭 Linux中svn提交添加注释设置

Linux中svn提交添加注释设置,当我们用tortoisesvn,提交代码时,有很多人不喜欢写注释的,代码版本多了,根本搞不清,哪个版本改了什么东西?所以如果加一些注释的话,我们看起来,也方便很多。所以在提交的时候,我会强制要求,写注释。

阅读全文 » 1466天前
2020年04月20日

技术饭 svn客户端show log的历史记录只有版本号,不显示其他信息解决办法

今天加入新项目,在 Tortoise SVN Check out 完项目之后,发现右键 show log 不显示 Log Message 的具体信息,svn客户端show log的历史记录只有版本号,不显示其他信息解决办法。

阅读全文 » 1466天前
2020年04月20日

技术饭 PHP生成随机英文用户名

最近用wordpress来做英文的博客,需要虚构一些随机的英文用户名来冒充访客发表评论,因为对PHP不熟悉(压根没学过),只能在百度和google查找方法。办法有2个:1、随机字母数字组合法;2、字典随机组合法

阅读全文 » 1521天前
2020年02月25日

技术饭 413错误,Allowed memory size of 100663296 bytes exhausted (tried to allocate 84494727 bytes),php.ini重启不生效

文件上传出现413错误,解决完413后报Allowed memory size of 100663296 bytes exhausted (tried to allocate 84494727 bytes)错误,修改php.ini之后重启php-fpm,php.ini配置还是原样不生效不生效

阅读全文 » 1657天前
2019年10月12日

技术饭 thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE

thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE,有些服务器可以正常,网上的解释都是说确认php_zip,php_gd2,php_xml是否开启,经过测试都开启了却还是不行,最终看了先thinkphp5的输出方式是return,所以在 php://output 前面加个return输出即可。

阅读全文 » 1681天前
2019年09月18日

技术饭 reach max api daily quota limit,微信公众号获取access_token次数受限制

reach max api daily quota limit,微信公众号获取access_token次数受限制,微信公众号获取token分为2种,一种是直接获取access_token,一种是用户授权获取access_token。access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

阅读全文 » 1693天前
2019年09月06日

技术饭 Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

上篇刚写了安装Mysql,想用Navicat去连接,然后就报错了,此处记录报错解决。Navicat连接MySQL Server8.0版本时出现Client does not support authentication protocol requested by server;解决如下:

阅读全文 » 1706天前
2019年08月24日

吃瓜群众 哈啰单车在禁停区域停车收取50元的禁停调度费???

昨天骑车去环岛路音乐广场附近,骑了20分钟左右,到达目的地看到有自行车划线停车的地方就停车了,然后哈啰单车就给我发了要50块的调度费,说是我违停了,Hmm,How interesting???

阅读全文 » 1728天前
2019年08月02日