技术饭

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

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

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

mysql根据关联表查询统计字段进行排序

mysql根据关联表查询统计字段进行排序,需求是查询所有的主账号数据,然后根据子账号的数量进行按高到低排序,第一想法就是需要做order by那么就需要把统计子账号的结果作为一个字段,那这时候就可以使用子查询来实现了。

阅读全文 » 32天前
2021年10月29日

eval()’d code on line 1 的解决方法

eval()’d code on line 1 的解决方法,php的eval函数是用来把一段文字当作一段php的脚本来执行,这样做的好处是我们可以动态修改php执行的内容。原始是看了权限部分的eval方法,运行代码,提示 “eval()’d code on line 1”,根据提示来看是eval函数在执行的时候出错了。无论怎么执行单引号的一直不行,就很奇怪。后来改成双引号才得以解决。

阅读全文 » 48天前
2021年10月13日

layui官网将于2021年10月13日进行下线

layui官网将于2021年10月13日进行下线,所有对 layui 为之热爱、鞭策、奉献,和支持过的开发者:请接受我用意念和字节传达的深深歉意。这是一个无力、无奈,甚至无助的决定:layui 官网将于 2021年10月13日 进行下线。届时,包括新版下载、文档和示例在内的所有框架日常维护工作,将全部迁移到 Github 和 Gitee。此后,layui 仍会在代码托管平台所活跃,且 2.7 正式版也将在其间首发。而 layui 官网将不复存在。这不是终结,只是重归到开源的纯粹中来。

阅读全文 » 49天前
2021年10月12日

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

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

阅读全文 » 73天前
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# 中的默认值。此操作当前将优先于新的配置文件设置,但将来会发生更改。

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

负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息

负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息,平时我们做swoole即时消息系统的时候,正常情况下就只使用一台服务器作为websocket的请求与分发,但是当加入了负载均衡之后,如果每台服务都开启了websocket,这样会导致客户端的wss请求可能随机分配到不同的服务器上,而每台服务器与客户端链接保存的fd可能重复,A服务器没办法给B服务器的客户端发送消息。

阅读全文 » 93天前
2021年08月29日

解决两个跨域但是同站、同域、同源的域名(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的登录状态就消失了,直接退出登录。

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

腾讯cos、阿里云oss存储文件跨域

腾讯cos、阿里云oss存储文件跨域,现在采用的文件存储方式基本上是阿里云oss、腾讯cos等一系列的存储来做文件存放,如果是新手肯定会碰到各种设置的问题,正常是在存储桶那边设置跨域访问CORS设置来源Origin,但是有时候并不生效,原因是存储如果管理了cdn需要在cdn那边也设置相应的响应头才行。

阅读全文 » 109天前
2021年08月13日

layui的插件laydate的时间范围控制

layui的插件laydate的时间范围控制,laydate插件本身有很多的设置,但是有的可能需要自定义,这种情况就需要自行开发设置了,现有的需求是需要把时间范围限定在3个月内,而且可以通过选择今天、最近一周、最近一月、最近三月来设置时间。

阅读全文 » 109天前
2021年08月13日

阿里云oss与腾讯云cos兼容,阿里云短信与腾讯云短信兼容

阿里云oss与腾讯云cos兼容,阿里云短信与腾讯云短信兼容,项目如果想从阿里云迁移到腾讯云或者从从腾讯云迁移到阿里云,那么必须保证之前的项目能跑通的前提现,再去做迁移,那么这时候需要做的工作就是做使用服务的兼容了,每个平台服务的api接口都不一致,但是也是类似的。

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

腾讯云负载均衡的使用配置

腾讯云负载均衡的使用配置,大数据大流量时代,服务器的压力越来越大,这时候负载均衡就成了流量分发的解决方案了,负载均衡(Cloud Load Balancer)是对多台 云服务器 进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

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

nginx设置目录转发

nginx设置目录转发,很多时候项目只有一个域名,但是项目又有很多的入口,比如后台、数据运营后台、前台等,这种处理方式要么是几个二级域名,要么就是同一个域名做不同目录下的分发,当然同一个域名相对简洁,没那么的复杂,只要做一个nginx目录转发即可。

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

centos8 安装 mysql5.7(更新数据库)

centos8 安装 mysql5.7(更新数据库),centos8下默认的yum源是mysql8,如果想用mysql5.7那该如何安装呢?其实也蛮简单的,mysql官方也给出了操作方法,直接安装步骤执行就可以了,但是有一点需要注意的是:过程中可能会报Mariadb错误,原因是因为yum自动默认了Mariadb,这需要先禁用卸载Mariadb之后才能继续安装mysql5.7版本。

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

centos8下php的安装

centos8下php的安装,centos8下事实上yum已经集成php7.2,安装相对的简单直接:yum -y install php 一键安装就好了,非常的方便, yum info php 可以查看当前php的版本,最主要的还是配置php的扩展,比如:redis、swoole、mcrypt等扩展的安装。save_handler

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

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

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

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

php 7.2 安装 swoole 扩展

centos版本升级到8,PHP的环境升级 php 7.2 后,当我们需要使用到swoole服务的时候这时候就需要安装swoole,php扩展的安装相对比较简单,swoole的安装步骤可以参考swoole官方的文档教程:https://wiki.swoole.com/#/environment

阅读全文 » 117天前
2021年08月05日

main(): Failed opening required '/manyidea/Config.php' (include_path='.:/usr/share/pear:/usr/share/php')

main(): Failed opening required '/manyidea/Config.php' (include_path='.:/usr/share/pear:/usr/share/php'),php文件上传时发生错误,提示打不开文件,搞了半天也没一个头绪,改了php.ini的配置也无济于事,后来才发现是centos系统的文件夹目录都是drw-xr-x,并不是755或者777,正常情况应该是drwxr-xr-x才能访问得到。

阅读全文 » 123天前
2021年07月30日

chart.js设置饼状图和甜甜圈图

chart.js设置饼状图和甜甜圈图,饼图和环形图表可能是最常用的图表。它们被分成不同的部分,每个部分的圆弧表示每个数据的比例值。该图表在展示数据之间的关系比例方面非常出色。饼图和环形图在 Chart.js 中实际上是同一个类,但有一个不同的默认值 - cutoutPercentage。意味着内部的百分比被减少。饼图默认为 0,甜甜圈默认为 50。该图表在Chart核心中注册了两个别名。除了不同的默认值和不同的别名,其他是完全一样的。

阅读全文 » 181天前
2021年06月02日

JAVA原生的类实现SHA256加密签名,转换成PHP版本加密

JAVA原生的类实现SHA256加密签名,转换成PHP版本加密签名,注意点主要在sort字典排序的时候需要设置方式为 SORT_STRING,如果sha 256加密函数的第三个参数设置为true时,这时候返回的是二进制数据,默认是false返回的则是进制的字符串。

阅读全文 » 190天前
2021年05月24日

小程序登录、用户信息相关接口调整说明:getUserInfo:fail scope unauthorized “err_code":"-12007

小程序登录、用户信息相关接口调整说明:getUserInfo:fail scope unauthorized “err_code":"-12007,2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID,2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。

阅读全文 » 238天前
2021年04月06日

PHP利用websocket实现客户端请求ws协议功能

PHP利用websocket实现客户端请求ws协议功能,利用websocket实现PHP对ws协议的请求,这里PHP是作为一个客户端通过ws协议请求服务,而不是作为服务端,这个首先要区分下。ws协议是websocket的东西,现在也有很多东西可以实现,如workerman、swoole,但是说实话,看到workerman的文档,有介绍怎么实现这个功能,但是个人是感觉真的很头疼,一切都是基于cli,基本都是用到命令行去执行,一个类似curl请求获取结果的功能还要去捣鼓这些东西,真是呵呵哒。swoole就不说了,首先Windows都不支持(当然,现在基本都是用Linux,但是个人感觉不是很通用)。

阅读全文 » 242天前
2021年04月02日

websocket 心跳包保持连接和关闭重连

websocket 心跳包保持连接和关闭重连,在开启了swoole服务之后,浏览器链接websocket链接之后,发送数据正常,但是过一段时间如果浏览器没有重新请求服务器会自动的断开会话,这样就不能发送数据了,为了保持链接需要做一个链接服务器的心跳请求。

阅读全文 » 242天前
2021年04月02日

PHP使用Redis的Hash(哈希表)命令

PHP使用Redis的Hash(哈希表)命令,本文介绍了Redis的Hash(哈希表)命令:hDel,hExists,hGet,hGetAll,hIncrBy,hIncrByFloat,hKeys,hLen,hMGet,hMSet,hSet,HSetnx,hVals作用和php的使用

阅读全文 » 242天前
2021年04月02日

redis实现目录层级结构存储

redis实现目录层级结构存储,想实现层级目录存储key,类似/project/func/username 这种方式存储。在redis中set key的时候把目录层级用冒号连接,如:/a/b/c/username的key值为simon

阅读全文 » 242天前
2021年04月02日

thinkphp5将json对象转数组

thinkphp5将json对象转数组,tp5获取得到的数据是json格式,但是无法通过数据的方式直接获取,以前是有默认转换,现在只能通过 getContent() 方法来获取内部的数据了。

阅读全文 » 242天前
2021年04月02日

微信公众号开发一物一码功能与扫码跳转小程序

需求是要用到微信公众号的一物一码功能,申请一批二维码并进行激活,将这些二维码分发到商品上,用户通过扫描二维码可以跳转到小程序,然后进入到我们自己的业务逻辑存储数据进行后续分析。看了官方的开发文档了,发现一物一码功能也是上线不久,网上并没有太多的开发经验。所以折腾了几个小时,终于大概弄清楚了,也不会特别复杂,说白了就是:公众号的一个插件,用来批量生成商品二维码,扫码之后跳转到小程序的页面。不过开通一码一物的流程可能比较慢。

阅读全文 » 314天前
2021年01月20日

实现小程序扫码发红包、小程序扫一物一码二维码领取红包、小程序红包

微信支付给用户发送包、转账的方式有两,一种是直接企业到零钱,另外一种是直接发红包,需要用户自行拆开领取,之前都是通过公众号直接支付发红包,现在的需求是需要在小程序里直接调起拆红包功能,或者是小程序里直接企业到零钱发个用户。

阅读全文 » 314天前
2021年01月20日

更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题

更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题,这几天在做公众号授权,每次写入用户昵称数据的时候一直报错,我就奇怪了,明明数据库、字符集都改成了utf8mb4,为什么还是写入不了数据呢,查看了测试机(mysql5.7.24)的my.cnf 文件没有配置设置编码却没有问题,而正式机(mysql5.7.32)做了字符集编码的配置却出现了异常,真实奇葩~~~

阅读全文 » 339天前
2020年12月26日

php7.2微信公众平台消息安全模式的加密及解密

php7.2微信公众平台消息安全模式的加密及解密,php7.2发布后新特性吸引了不少PHPer,大家都在讨论新特性带来的好处与便利。但是从php7.0 升级到 php7.2 废弃(过时)了一个在过去普遍应用的扩展(mcrypt扩展)。官方提供了相应的解决提示,却没有提供更详细的解决办法。于是就各种报错,当然了只能改方法了~~~

阅读全文 » 339天前
2020年12月26日

vue、js前端集成ueditor编辑器,后端serverUrl的实现方式

vue、js前端集成ueditor编辑器,后端serverUrl的实现方式,对比其他的富文本编辑器,Ueditor的功能相对来说是最强的,对于在Vue、jquery中集成Ueditor想必还是有这个需求的,接下来就来看看Ueditor在后端如何进行配置提供上传功能。

阅读全文 » 342天前
2020年12月23日

ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored

ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored,今天打开阿里云centos的控制面板出现了这种情况,有点懵逼,就重启了下服务器,就一直报这种错误,然后定时任务还被设置成了0,定时任务改回来,15分钟左右又被篡改成了0,估摸着应该是被植入了病毒,想想这台服务器之前因为Redis没有设置密码就已经出现过定时任务文件被篡改的情况,当时还没在意。

阅读全文 » 343天前
2020年12月22日

Centos8 mysql5.6升级至5.7

Centos8 mysql5.6升级至5.7,说实话mysql的升级安装是最头疼的事情,升级过程中要是一不小心出了错,那就是mysql服务器启动不了,而且启动不了的报错还无法知道是哪里错了,真的很麻烦~~~

阅读全文 » 343天前
2020年12月22日

php 7.2 安装 mcrypt 扩展

centos版本升级到8,PHP的环境升级 php 7.2 后,使用微信提供的加解密代码时,提示 call to undefined function mcrypt_module_open(),mcrypt_module_open()方法不存在,应该是PHP升级之后可能扩展被废弃了吧,查阅相关资料知晓,mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl。

阅读全文 » 343天前
2020年12月22日

mysql中json_contains、json_extract等json查询方法的使用

mysql中json_contains、json_extract等json查询方法的使用,新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作。JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本。 MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析。

阅读全文 » 348天前
2020年12月17日

mysql查询语句group by 后面 order by 失效

原始需求是要查询出通过手机号最新报名的数据并且需要对手机号进行分组,但是在查询过程中发现mysql查询语句group by 后面 order by 失效,无论怎么查询都是未查到需要的数据,单独查询数据排序没有问题,但是加入 GROUP BY 之后就不行了,后来的解决方案是:使用子查询的方式先查出排序好的数据,然后再将数据进行分组排序。

阅读全文 » 348天前
2020年12月17日

本地开发环境nginx配置HTTPS,使用https证书

本地开发环境nginx配置HTTPS,使用https证书,我们访问的所有网站几乎都是受HTTPS保护的。如果你的站点还没有,那你应该使用它。使用HTTPS保护服务器也意味着你不能从不是HTTPS服务器向此服务器发送请求。这给使用本地开发环境的开发人员带来了一个问题,因为它们都运行在开箱即用的http://localhost环境中。

阅读全文 » 356天前
2020年12月09日

PHP查询用户排名名次、Mysql查询用户排名名次的方法

PHP查询用户排名名次、Mysql查询用户排名名次的方法,最近做了用户排行榜,那么就整理了查询用户排行的一些代码,主要分为两部分:PHP、Mysql两者独立查询用户排名信息,当然查询的是所有用户的排名以及当前用户的排名信息。

阅读全文 » 360天前
2020年12月05日

前端js加密后台php解密,自定义加密方法

前端js加密后台php解密,自定义加密方法,前端html输入用户名密码之后,使用http传到后台,post的内容全部是明文,用户名和密码通过抓包工具可以很容易获取到,所以需要在http传输之前对密码进行加密处理,php收到post内容之后进行解密,然后进行后续认证处理。

阅读全文 » 361天前
2020年12月04日

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(); 将复回原样。

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