技术饭
PHP搜索引擎MeiliSearch实现全文检索
PHP搜索引擎MeiliSearch实现全文检索,Meilisearch 搜索引擎使用 Rust 语言开发,轻量,对中文搜索非常友好,几乎做到了零配置,零学习成本,部署即用,非常方便。建立在 LMDB 键值存储之上,安装在 Ubuntu 或 MacOS 上时,它以 35 MB 的二进制文件形式存在。 MeiliSearch 带有内置的客户端、服务器和 WebUI。 词干提取、停用词、同义词、排名、过滤器和分面等功能都是开箱即用的,使用合理的默认值并且可以轻松定制。
阅读全文 » 今天23 小时前
PHP 导入导出csv文件函数:fgetcsv()、fputcsv()
PHP 导入导出csv文件函数:fgetcsv()、fputcsv(),数据导出格式正常是execl的.xsl、.xslx格式,但导出这两种格式的文件体积很大,还很占用内存,所以一般推荐导出csv格式,csv能处理的数据量比较大,文件还小,是导出数据文件格式的首选。
阅读全文 » 前天2023年05月30日
WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: [connection refused calling hello on 'localhost:27017']
WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling hello on 'localhost:27017'],解决方法是:1、防火墙需要运行wsl2、2、mongodb配置文件设置bindIp=0.0.0.0、3、设置wsl中对应host访问
阅读全文 » 4天前2023年05月28日
redis队列详解
现如今的互联网应用大都是采用分布式系统架构设计的,所以消息队列已经逐渐成为企业应用系统内部通信的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。当前使用较多的消息队列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分数据库 如 Redis、MySQL 以及 phxsql ,如果硬搞的话,其实也可实现消息队列的功能。可能有人觉得,各种开源的 MQ 已经足够使用了,为什么需要用 Redis 实现 MQ 呢?有些简单的业务场景,可能不需要重量级的 MQ 组件(相比 Redis 来说,Kafka 和 RabbitMQ 都算是重量级的消息队列)。
阅读全文 » 31天前2023年05月01日
Redis的消息发布(Pub)与订阅(Sub)
Redis的消息发布(Sub)与订阅(Sub),Redis PubSub 模块又称发布订阅者模式,是一种消息传递系统,实现了消息多播功能。发布者(即发送方)发送消息,订阅者(即接收方)接收消息,而用来传递消息的链路则被称为 channel。在 Redis 中,一个客户端可以订阅任意数量的 channel(可译为频道)。消息多播:生产者生产一次消息,中间件负责将消息复制到多个消息队列中,每个消息队列由相应的消费组进行消费,这是分布式系统常用的一种解耦方式。
阅读全文 » 31天前2023年05月01日
gitee+webhook+php实现自动拉取代码
gitee+webhook+php实现自动拉取代码,在项目开发中使用git进行代码的管理,每次完成更改上传代码后,还需要登录服务器将代码拉取下来,现在git服务器(gitee/gitlab/github)都会有Webhooks功能,以实现在向git仓库推送/合并等时机让服务器自动拉取新代码。
阅读全文 » 106天前2023年02月15日
微信分享:分享签名、分享链接需要注意的细节
微信分享JSSDK在1.4.0之后,废弃了很多的方法如:onMenuShareTimeline、onMenuShareAppMessage、onMenuShareQQ等,取而代之的是:自定义“分享给朋友”及“分享到QQ”按钮的分享内容(updateAppMessageShareData)、自定义“分享到朋友圈”及“分享到 QQ 空间”按钮的分享内容(updateTimelineShareData)
阅读全文 » 142天前2023年01月11日
VS Code出现“由于找不到ffmpeg.dll,无法继续执行代码”的系统错误
点击桌面vs code快捷方式出现如图错误。打开Microsoft VS Code 文件夹,VS Code出现“由于找不到ffmpeg.dll,无法继续执行代码”的系统错误,发现一部分文件被打包进了一个叫“_”的文件夹(真奇怪啊),把该文件夹里的全部文件取出至Microsoft VS Code文件夹。可以正常打开Vs Code。
阅读全文 » 231天前2022年10月14日
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.
阅读全文 » 309天前2022年07月27日
mysql 将一个表的一个字段更新到另一个表中的一个字段
mysql 将一个表的一个字段更新到另一个表中的一个字段,有两个表brand_fundlist_log和 brand_fundlist_log_temp,现在要将brand_fundlist_log_temp的update_create_time值更新到brand_fundlist_log的create_time 字段上面去。
阅读全文 » 330天前2022年07月07日
thinkphp5.1日志文件夹及文件权限问题
thinkphp5.1日志文件夹及文件权限问题,由于www用户和root用户(比如cmd的cli进程日志)都有可能对log文件夹或文件进行创建和读写。如果是先由www用户创建的log文件夹活文件,则不会出任何问题。但是如果是先由root用户创建的文件,然后再由www用户角色去读写就会出现异常报错。因为一般默认创建的log文件的权限是 -rw-r--r-,也就是www没有权限去写入root用户创建的log文件。
阅读全文 » 365天前2022年06月01日
INSERT INTO SELECT FROM,从某个表复制到另外一个表语句的使用方法
INSERT INTO SELECT FROM,从某个表复制到另外一个表语句的使用方法,数据脚本迁移原本看起来比较麻烦,问了下大佬,大佬随便在我屏幕上打上:insert into from,说用这个就好了,然后再加上小度就找到解决方法了,感谢大佬,每天教会小弟一点知识。
阅读全文 » 374天前2022年05月24日
Gitee代码评审,解决完冲突之后,会自动把目标分支合并到源分支
Gitee代码评审,解决完冲突之后,会自动把目标分支合并到源分支,开发项目,使用Gitee的代码评审,合并功能分支feature到dev上的时候,出现了Conflicts,在线解决冲突之后,点击解决合并,结果反向的把dev的分支合并到了feature功能分支,这个源分支多了dev分支的代码。
阅读全文 » 419天前2022年04月08日
mysql替换字段值为另外一个表的字段值
mysql替换字段值为另外一个表的字段值,需求是:替换充值订单中的时间为另外一张表的时间字段,这时候正常使用 INNER JOIN 查询的方式查出来数据之后再进行update更新。
阅读全文 » 420天前2022年04月07日
PHP中ElasticSearch的简单使用
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
阅读全文 » 455天前2022年03月03日
mysql替换(replace)字符串字段的某些字符串、正则替换
mysql替换(replace)字符串字段的某些字符串、正则替换,由于图片字段上传到腾讯云cos之后,缩略图带了裁剪参数,存入数据库之后,参数也被存在了数据库中,导致图片的显示不全,现在需要把图片处理参数删除,也就是图片url问号后面的参数一并删除;刚开始想法是直接用mysql里面的regexp_replace函数对敏感字段进行处理。后来发现mysql8.0才支持regexp_replace()。mysql5.7里只有正则匹配的函数。最后还是用mysql本身提供的函数进行处理。
阅读全文 » 455天前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的却一直都是正常的,初步排查是本地环境配置导致。
阅读全文 » 464天前2022年02月22日
CentOS官方已计划停止维护CentOS Linux项目
CentOS官方已计划停止维护CentOS Linux项目(即2022年1月1日起CentOS官方将不再对CentOS 8提供服务支持;CentOS 7也将在2024年6月30日停止技术服务支持),2020年12月08日CentOS 官方宣布CentOS Linux项目将停止,并推出CentOS Stream项目。CentOS未来将会从Red Hat Enterprise Linux(RHEL)复刻版本的CentOS Linux转向CentOS Stream。
阅读全文 » 499天前2022年01月18日
PHP简单对称ID加密、解密算法
PHP简单对称ID加密、解密算法,有时候需要对数据进行简单的混淆,不让别人轻易破解,所以就需要对数据进行一定的加密解密来保证数据的安全性,这里做个简单的算法。
阅读全文 » 510天前2022年01月07日
php函数getimagesize()函数获取腾讯云对象存储图片信息太慢解决办法
php函数getimagesize()函数获取腾讯云对象存储图片信息太慢,导致接口返回超过了5s,这个体验太不好了,按照正常逻辑:想获取图片信息,当然是用getimagesize()函数,对于getimagesize()函数而言本地服务器的文件读取相对是比较快的,但是远程的图片就太慢了,必须先现在到本地服务器,然后再获取,如果有的图片很大,那这个下载速度可想而知的慢。
阅读全文 » 561天前2021年11月17日
mysql根据关联表查询统计字段进行排序
mysql根据关联表查询统计字段进行排序,需求是查询所有的主账号数据,然后根据子账号的数量进行按高到低排序,第一想法就是需要做order by那么就需要把统计子账号的结果作为一个字段,那这时候就可以使用子查询来实现了。
阅读全文 » 581天前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函数在执行的时候出错了。无论怎么执行单引号的一直不行,就很奇怪。后来改成双引号才得以解决。
阅读全文 » 597天前2021年10月13日
layui官网将于2021年10月13日进行下线
layui官网将于2021年10月13日进行下线,所有对 layui 为之热爱、鞭策、奉献,和支持过的开发者:请接受我用意念和字节传达的深深歉意。这是一个无力、无奈,甚至无助的决定:layui 官网将于 2021年10月13日 进行下线。届时,包括新版下载、文档和示例在内的所有框架日常维护工作,将全部迁移到 Github 和 Gitee。此后,layui 仍会在代码托管平台所活跃,且 2.7 正式版也将在其间首发。而 layui 官网将不复存在。这不是终结,只是重归到开源的纯粹中来。
阅读全文 » 597天前2021年10月12日
layer.prompt输入框改成laydate时间控件
layer.prompt输入框改成laydate时间控件,layui官方文档的解释:prompt的参数也是向前补齐的。options不仅可支持传入基础参数,还可以传入prompt专用的属性。当然,也可以不传。yes携带value 表单值index 索引elem 表单元素,输入框类型,支持0(文本)默认1(密码)2(多行文本),没有直接输入dom内容的方式。但是网上找到一个是formType:3的类型,测试可以。
阅读全文 » 622天前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# 中的默认值。此操作当前将优先于新的配置文件设置,但将来会发生更改。
阅读全文 » 635天前2021年09月04日
负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息
负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息,平时我们做swoole即时消息系统的时候,正常情况下就只使用一台服务器作为websocket的请求与分发,但是当加入了负载均衡之后,如果每台服务都开启了websocket,这样会导致客户端的wss请求可能随机分配到不同的服务器上,而每台服务器与客户端链接保存的fd可能重复,A服务器没办法给B服务器的客户端发送消息。
阅读全文 » 642天前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的登录状态就消失了,直接退出登录。
阅读全文 » 657天前2021年08月14日
腾讯cos、阿里云oss存储文件跨域
腾讯cos、阿里云oss存储文件跨域,现在采用的文件存储方式基本上是阿里云oss、腾讯cos等一系列的存储来做文件存放,如果是新手肯定会碰到各种设置的问题,正常是在存储桶那边设置跨域访问CORS设置来源Origin,但是有时候并不生效,原因是存储如果管理了cdn需要在cdn那边也设置相应的响应头才行。
阅读全文 » 657天前2021年08月13日
layui的插件laydate的时间范围控制
layui的插件laydate的时间范围控制,laydate插件本身有很多的设置,但是有的可能需要自定义,这种情况就需要自行开发设置了,现有的需求是需要把时间范围限定在3个月内,而且可以通过选择今天、最近一周、最近一月、最近三月来设置时间。
阅读全文 » 657天前2021年08月13日
阿里云oss与腾讯云cos兼容,阿里云短信与腾讯云短信兼容
阿里云oss与腾讯云cos兼容,阿里云短信与腾讯云短信兼容,项目如果想从阿里云迁移到腾讯云或者从从腾讯云迁移到阿里云,那么必须保证之前的项目能跑通的前提现,再去做迁移,那么这时候需要做的工作就是做使用服务的兼容了,每个平台服务的api接口都不一致,但是也是类似的。
阅读全文 » 662天前2021年08月08日
腾讯云负载均衡的使用配置
腾讯云负载均衡的使用配置,大数据大流量时代,服务器的压力越来越大,这时候负载均衡就成了流量分发的解决方案了,负载均衡(Cloud Load Balancer)是对多台 云服务器 进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
阅读全文 » 662天前2021年08月08日
nginx设置目录转发
nginx设置目录转发,很多时候项目只有一个域名,但是项目又有很多的入口,比如后台、数据运营后台、前台等,这种处理方式要么是几个二级域名,要么就是同一个域名做不同目录下的分发,当然同一个域名相对简洁,没那么的复杂,只要做一个nginx目录转发即可。
阅读全文 » 662天前2021年08月08日
centos8 安装 mysql5.7(更新数据库)
centos8 安装 mysql5.7(更新数据库),centos8下默认的yum源是mysql8,如果想用mysql5.7那该如何安装呢?其实也蛮简单的,mysql官方也给出了操作方法,直接安装步骤执行就可以了,但是有一点需要注意的是:过程中可能会报Mariadb错误,原因是因为yum自动默认了Mariadb,这需要先禁用卸载Mariadb之后才能继续安装mysql5.7版本。
阅读全文 » 663天前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
阅读全文 » 663天前2021年08月08日
腾讯云redis通过iptables转发实现外网访问
最近项目做迁移,买了腾讯云的redis服务,发现官方是不提供外网访问的权限,而建议直接走内网的方式,但是平时也要管理redis,所以还是需要开通外网来支持redis的外网访问。那么官方提供外网的访问方式是通过iptables转发实现外网访问。
阅读全文 » 664天前2021年08月06日
php 7.2 安装 swoole 扩展
centos版本升级到8,PHP的环境升级 php 7.2 后,当我们需要使用到swoole服务的时候这时候就需要安装swoole,php扩展的安装相对比较简单,swoole的安装步骤可以参考swoole官方的文档教程:https://wiki.swoole.com/#/environment
阅读全文 » 665天前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才能访问得到。
阅读全文 » 671天前2021年07月30日
chart.js设置饼状图和甜甜圈图
chart.js设置饼状图和甜甜圈图,饼图和环形图表可能是最常用的图表。它们被分成不同的部分,每个部分的圆弧表示每个数据的比例值。该图表在展示数据之间的关系比例方面非常出色。饼图和环形图在 Chart.js 中实际上是同一个类,但有一个不同的默认值 - cutoutPercentage。意味着内部的百分比被减少。饼图默认为 0,甜甜圈默认为 50。该图表在Chart核心中注册了两个别名。除了不同的默认值和不同的别名,其他是完全一样的。
阅读全文 » 729天前2021年06月02日