技术饭 PHP利用websocket实现客户端请求ws协议功能
PHP利用websocket实现客户端请求ws协议功能,利用websocket实现PHP对ws协议的请求,这里PHP是作为一个客户端通过ws协议请求服务,而不是作为服务端,这个首先要区分下。ws协议是websocket的东西,现在也有很多东西可以实现,如workerman、swoole,但是说实话,看到workerman的文档,有介绍怎么实现这个功能,但是个人是感觉真的很头疼,一切都是基于cli,基本都是用到命令行去执行,一个类似curl请求获取结果的功能还要去捣鼓这些东西,真是呵呵哒。swoole就不说了,首先Windows都不支持(当然,现在基本都是用Linux,但是个人感觉不是很通用)。
阅读全文 » 1286天前2021年04月02日
技术饭 websocket 心跳包保持连接和关闭重连
websocket 心跳包保持连接和关闭重连,在开启了swoole服务之后,浏览器链接websocket链接之后,发送数据正常,但是过一段时间如果浏览器没有重新请求服务器会自动的断开会话,这样就不能发送数据了,为了保持链接需要做一个链接服务器的心跳请求。
阅读全文 » 1286天前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的使用
阅读全文 » 1286天前2021年04月02日
技术饭 redis实现目录层级结构存储
redis实现目录层级结构存储,想实现层级目录存储key,类似/project/func/username 这种方式存储。在redis中set key的时候把目录层级用冒号连接,如:/a/b/c/username的key值为simon
阅读全文 » 1286天前2021年04月02日
技术饭 thinkphp5将json对象转数组
thinkphp5将json对象转数组,tp5获取得到的数据是json格式,但是无法通过数据的方式直接获取,以前是有默认转换,现在只能通过 getContent() 方法来获取内部的数据了。
阅读全文 » 1286天前2021年04月02日
生活札记 赵英俊因病医治无效在北京病逝
2021年2月3日,赵英俊家人发布讣告,称赵英俊因病医治无效,于2021年2月3日14时33分在北京病逝,享年43岁。表示将遵照赵英俊他生前遗愿,丧事将一切从简,“对其生前及患病期间予以关爱的亲朋好友及医务工作者致以诚挚的谢意”。据悉,赵英俊曾为《送你一朵小红花》、《唐人街探案》、《煎饼侠》、《港囧》电影等创作主题曲。
阅读全文 » 1344天前2021年02月03日
技术饭 微信公众号开发一物一码功能与扫码跳转小程序
需求是要用到微信公众号的一物一码功能,申请一批二维码并进行激活,将这些二维码分发到商品上,用户通过扫描二维码可以跳转到小程序,然后进入到我们自己的业务逻辑存储数据进行后续分析。看了官方的开发文档了,发现一物一码功能也是上线不久,网上并没有太多的开发经验。所以折腾了几个小时,终于大概弄清楚了,也不会特别复杂,说白了就是:公众号的一个插件,用来批量生成商品二维码,扫码之后跳转到小程序的页面。不过开通一码一物的流程可能比较慢。
阅读全文 » 1358天前2021年01月20日
技术饭 实现小程序扫码发红包、小程序扫一物一码二维码领取红包、小程序红包
微信支付给用户发送包、转账的方式有两,一种是直接企业到零钱,另外一种是直接发红包,需要用户自行拆开领取,之前都是通过公众号直接支付发红包,现在的需求是需要在小程序里直接调起拆红包功能,或者是小程序里直接企业到零钱发个用户。
阅读全文 » 1358天前2021年01月20日
技术饭 更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题
更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题,这几天在做公众号授权,每次写入用户昵称数据的时候一直报错,我就奇怪了,明明数据库、字符集都改成了utf8mb4,为什么还是写入不了数据呢,查看了测试机(mysql5.7.24)的my.cnf 文件没有配置设置编码却没有问题,而正式机(mysql5.7.32)做了字符集编码的配置却出现了异常,真实奇葩~~~
阅读全文 » 1383天前2020年12月26日
技术饭 php7.2微信公众平台消息安全模式的加密及解密
php7.2微信公众平台消息安全模式的加密及解密,php7.2发布后新特性吸引了不少PHPer,大家都在讨论新特性带来的好处与便利。但是从php7.0 升级到 php7.2 废弃(过时)了一个在过去普遍应用的扩展(mcrypt扩展)。官方提供了相应的解决提示,却没有提供更详细的解决办法。于是就各种报错,当然了只能改方法了~~~
阅读全文 » 1383天前2020年12月26日
技术饭 vue、js前端集成ueditor编辑器,后端serverUrl的实现方式
vue、js前端集成ueditor编辑器,后端serverUrl的实现方式,对比其他的富文本编辑器,Ueditor的功能相对来说是最强的,对于在Vue、jquery中集成Ueditor想必还是有这个需求的,接下来就来看看Ueditor在后端如何进行配置提供上传功能。
阅读全文 » 1386天前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没有设置密码就已经出现过定时任务文件被篡改的情况,当时还没在意。
阅读全文 » 1387天前2020年12月22日
技术饭 Centos8 mysql5.6升级至5.7
Centos8 mysql5.6升级至5.7,说实话mysql的升级安装是最头疼的事情,升级过程中要是一不小心出了错,那就是mysql服务器启动不了,而且启动不了的报错还无法知道是哪里错了,真的很麻烦~~~
阅读全文 » 1387天前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。
阅读全文 » 1387天前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数据类型以及关于这种类型的检索以及其他函数解析。
阅读全文 » 1392天前2020年12月17日
技术饭 mysql查询语句group by 后面 order by 失效
原始需求是要查询出通过手机号最新报名的数据并且需要对手机号进行分组,但是在查询过程中发现mysql查询语句group by 后面 order by 失效,无论怎么查询都是未查到需要的数据,单独查询数据排序没有问题,但是加入 GROUP BY 之后就不行了,后来的解决方案是:使用子查询的方式先查出排序好的数据,然后再将数据进行分组排序。
阅读全文 » 1392天前2020年12月17日
技术饭 本地开发环境nginx配置HTTPS,使用https证书
本地开发环境nginx配置HTTPS,使用https证书,我们访问的所有网站几乎都是受HTTPS保护的。如果你的站点还没有,那你应该使用它。使用HTTPS保护服务器也意味着你不能从不是HTTPS服务器向此服务器发送请求。这给使用本地开发环境的开发人员带来了一个问题,因为它们都运行在开箱即用的http://localhost环境中。
阅读全文 » 1400天前2020年12月09日
技术饭 PHP查询用户排名名次、Mysql查询用户排名名次的方法
PHP查询用户排名名次、Mysql查询用户排名名次的方法,最近做了用户排行榜,那么就整理了查询用户排行的一些代码,主要分为两部分:PHP、Mysql两者独立查询用户排名信息,当然查询的是所有用户的排名以及当前用户的排名信息。
阅读全文 » 1404天前2020年12月05日
技术饭 前端js加密后台php解密,自定义加密方法
前端js加密后台php解密,自定义加密方法,前端html输入用户名密码之后,使用http传到后台,post的内容全部是明文,用户名和密码通过抓包工具可以很容易获取到,所以需要在http传输之前对密码进行加密处理,php收到post内容之后进行解密,然后进行后续认证处理。
阅读全文 » 1405天前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(); 将复回原样。
阅读全文 » 1409天前2020年11月30日
技术饭 阿里云cdn的免费https证书到期未更新导致页面提示https过期不安全,访问网页显示空白
阿里云cdn的免费https证书到期未更新导致页面提示https过期不安全,访问网页显示空白,一直以来https长期付费的证书都比较贵,所以一直采用的是阿里云的免费https证书,这种https证书一年一换,这两天没注意看,证书过期了,然后就重新申请下载,等nginx都配置好之后发现访问网页显示空白,还是一直提示证书过期不安全,搞了好久,证书正常下载,也替换了,ngnix也重启了,还是这样,后来查看了下是因为当前的域名绑定了阿里的cdn,cdn的https证书并未更新,还是原来的那个,这才导致了访问一直空白,提示证书过期。
阅读全文 » 1411天前2020年11月28日
技术饭 PHP二维数组去除重复项
PHP的一维数组正常使用array_unique()方法直接去除重复项即可,但是二维数据似乎没有固定的内置函数,这时候就需要自己手动些方法处理了,那如果去除二维数组的重复项呢?研究了一会,大概写了简略版本的去重方案。
阅读全文 » 1421天前2020年11月18日
技术饭 Nginx的启动、停止与重启
Nginx的启动、停止与重启启动,启动代码格式:nginx安装目录地址 -c nginx配置文件地址,例如:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
阅读全文 » 1422天前2020年11月17日
技术饭 阿里云oss上传文件设成了跨域头之后还是显示跨域问题
阿里云oss上传文件设成了跨域头之后还是显示跨域问题,今天碰到奇怪的问题是OSS文件上传只有,需要下载文件的时候,有些文件可以下载有些文件不能下载,奇怪了都是同样的上传接口为什么就跨域了,可是oss也已经设置了JavaScript跨域全部允许了,可还是有些文件跨域。
阅读全文 » 1422天前2020年11月17日
技术饭 阿里云负载均衡SLB服务器配置与服务器NGINX的301跳转处理方案
正常我们做小项目都是使用一台服务就可以完成了,但是对于并发数高,流量的的一台服务器正常是扛不住的,并发一高CPU就蹭蹭蹭往上飙,直到服务器超负载奔溃为止,所以我们就有理由去做多台服务器的负载均衡,当然你如果有钱也可以买一台配置超牛逼的服务器,本篇就讲讲简单的阿里云负载均衡SLB服务器配置。
阅读全文 » 1424天前2020年11月15日
技术饭 阿里云OSS文件的上传与下载
这几天弄了下新项目的负载均衡之后,文件为了统一管理,就同时也采用了阿里云的OSS作为文件存储方式,文件统一的管理解决了负载均衡文件生成在服务器上找不到文件的尴尬,当然了,也可以自己做一台专门的服务器来存储文件,但是毕竟阿里云相对成熟,还稳定,所以有钱还是用第三方存储能解决大部分的问题。
阅读全文 » 1424天前2020年11月15日
技术饭 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 :对预检请求的响应未收到通过访问控制检查:飞行前请求不允许重定向。
阅读全文 » 1425天前2020年11月14日
技术饭 解决Unable to find the wrapper "https"的二种方法
这个问题其实通php加载openssl模块来解决,是件挺容易的事,但是牵扯到用什么linux系统,以及是用多少位的linux系统,以及php自身的版本问题,以及是不是手动安装,还是管理工具安装时,其实有的时候,还是比较麻的。
阅读全文 » 1426天前2020年11月13日
技术饭 PHP mkdir函数创建目录失败
PHP 编程中,经常会遇到文件的上传,文件夹的创建等等。其中会用到一个非常重要的函数:mkdir;它的作用是创建一个目录,用来存放上传文件的文件夹。在上传过程中如果涉及多级目录的创建,经常会遇到错误,怎么如何处理呢??
阅读全文 » 1426天前2020年11月13日
技术饭 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。
阅读全文 » 1426天前2020年11月13日
技术饭 mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0
mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0,今天在将开发库(mysql版本号:5.7.24)的表结构和正式库(mysql版本号:8.0.19)表结构做比对的时候,发现大量表中字段不一致,初以为是切换到正式库时执行SQL报错了,后,手工修改表字段长度还是不行。
阅读全文 » 1428天前2020年11月11日
技术饭 centos8重新安装MySQL,从高版本降到低版本后疯狂报错
centos8重新安装MySQL,从高版本降到低版本后疯狂报错。原来服务器centos8是默认yum install mysql的,mysql的版本是8.0.21,但是原始项目的数据库过度过去之后,数据库报错了,说是8.0.17版本之后int、tinyint类的字段长度被废弃不再显示了:mysql8.0 tinyint字段长度修改时无效,所以就想把mysql版本降到5.7.32版本,本来是先yum remove mysql,因为没有删除遗留的mysql文件、目录导致了安装5.7.32版本一直报错。
阅读全文 » 1428天前2020年11月11日
技术饭 解决You have new mail in /var/spool/mail/root提示
问题:终端远程登陆后经常提示You have new mail in /var/spool/mail/root;这个提示是LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的root的邮箱里,以供有需之时查看。 一般这种情况mail的内容就只是一些正常的系统信息或者是比较重要的错误报告。如果你安装了mutt的话直接用这个命令就可以查看mail的内容(用root登陆先),没有装的话用cat /var/spool/mail/root查看(用root登陆先)。
阅读全文 » 1428天前2020年11月11日
技术饭 CentOS8 Nginx+PHP7.2+mysql8+redis+git的配置以及注意事项
CentOS8 Nginx+PHP7.2+mysql8的配置以及注意事项,CentOS8的配置相对Contos7比较简单。在以下讲解中会详细讲解到两个系统nginx、php、mysql8的安装和配置。目前nginx1.14、php7.2、mysql8都已经加入centos8官方源,使用和配置都简单很多。
阅读全文 » 1429天前2020年11月11日
技术饭 MySQL 批量修改数据表编码及字符集
经常使用SQLyog导出导入数据库时,不懂为什么经常性出现编码错误字符集被设置成了默认,奇怪的很,可能是软件版本问题,当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改。以下备注批量修改方案( 以修改为 utf8mb4_general_ci为例,注意将 db_name 换为真实的数据库名 )。
阅读全文 » 1429天前2020年11月10日
技术饭 PHP7.2 redis扩展的安装
PHP7.2 redis扩展的安装,一.下载php-redis包,解压:wget http://pecl.php.net/get/redis-4.0.2.tgz;tar -xzvf redis-4.0.2.tgzcd redis-4.0.2;二.通过phpize生成编译configure配置文件,编译&&安装;没有配置环境变量的话,必须使用 绝对地址 ,例子:/usr/php/phpize;phpize;指定php配置文件的位置;./configure --with-php-config=/usr/bin/php-config
阅读全文 » 1430天前2020年11月10日
技术饭 nginx 502 bad gateway 解决 connect() failed (111: Connection refused) while connecting to upstream
nginx 502 bad gateway 解决 connect() failed (111: Connection refused) while connecting to upstream,新安装了centos8,配置了php7.2,还没怎么用,一直报错,烦都烦死。多方求证最后才知道是php的配置是:fastcgi_pass 127.0.0.1:9000; 但是php-fpm/www.conf里配置的监听listen不是这个,所以就报错了。
阅读全文 » 1430天前2020年11月10日
技术饭 nginx 访问 .php文件变成下载
Nginx 浏览.php文件变成下载:这是因为nginx没有设置好碰到php文件时,要传递到后方的php解释器。看看你的nginx.conf配置,里面有没有这样的设置:location ~ .*\.php$ { fastcgi_pass 127.0.0.1:9000;}
阅读全文 » 1430天前2020年11月09日
技术饭 PHP短网址生成逻辑与实现
微博短网址大家一定不陌生,如:http://t.cn/ 这个网站点开就直接跳转到了微博,是不是看起来很方便,但应该很多人都不知道是怎么实现的,我们今天就来讲讲PHP生成短网址的方法。PHP生成短网址的:如果把短网址还原了,你知道是个什么样子的吗?可能你看到的短网址都是这个样子:http://p-d-d.cn/T0f121,其实他还原了说不定就是这个样子:https://www.copylian.com/,按这个格式可以知道这个短网址其实是通过代码将长的网址:https://www.copylian.com/ 转成 http://p-d-d.cn/T0f121 ,然后短网址做个重定向到长网址就好了。
阅读全文 » 1433天前2020年11月06日
技术饭 TP5使用unlink删除文件报错:Resource temporarily unavailable
TP5使用unlink删除文件报错:Resource temporarily unavailable,今天在TP5内使用unlink删除上传图片的时候报错了。情况是 $info = $file->move();获得 $info 变量后 $info->getRealPath() 通过该方法获取上传文件真实路径,然后直接unlink时报错 Resource temporarily unavailable
阅读全文 » 1442天前2020年10月28日