常用的比较高效的排序算法之快速排序

排序算法在数据结构那门课上了解过之后,就一直抛在脑后了。印象中比较深刻的就是冒泡算法了,因为名称比较形象。之前应用过冒泡算法,大概过程就是两层循环,前后两两比较,大的往后排,复杂度应该是 O(n*(n-1))。每次需要进行排序的时候,都是临时去找一下算法结构,然后套用一下。这次搜索突然找到了一篇介绍比较详细的文章 总结5种比较高效常用的排序算法 - cnblog,里面介绍的 5 种算法听着都很耳熟

php 时间戳转换成固定格式的日期定制版

不管是做 app 接口,还是网站接口,经常需要这样的功能:把数据库里存放的时间戳改成需要的固定格式的日期。比如说当天的时间戳显示多少小时或者多少分钟之前,比较像微信朋友消息下面的时间戳。超过发布时间过了一天展示成月、日,过了一年只展示年份或者展示年月日。话不多说,直接上自己写的一个助手函数: function timetodates($time, $typ

yii2 报错 Bad Request: 您提交的数据无法被验证。

同事反映公司小程序管理后台添加商品,当商品规格较多时,提交数据会报这样的错误:“Bad Request: 您提交的数据无法被验证。”网上搜了一下,发现所有人的解决办法都指向了 _csrf 验证,要么关闭验证,要么在提交的表单中嵌入验证字段。关闭 csrf 验证:配置文件 web.php... 'components' => [ 'reques

php 小票打印隐私保护要求隐藏手机号和真实姓名(脱敏处理)

2020-09-22 更新使用隐藏手机号、电话函数的过程中发现,有些号码并没有实现脱敏处理,比如 173***。检查代码发现,/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i 只能匹配 13、15、18 开头的手机号,匹配手机号的正则表达式不够精准。网上找到一个 中国大陆手机号正则表达式大全 - github,其中匹配所有支持短信功能的号码(手机卡 + 上网卡)的正则为:

php warning: preg_replace(): Unknown modifier 'c'

做一个打印模板的功能,需要替换掉模板中对应标记的内容。对于确定的替换字符串,可以使用 str_replace() 函数,但对于一个标签块内的内容处理,需要使用到正则,具体如下:content = preg_replace('/<offline>.*?</offline>/i', '', $content);该正则的目的是清除 <

composer 指令集和项目配置文件解析

查看版本号composer -V[--version]require 关键词第一个(并且经常唯一一个)你需要在 composer.json 配置文件中明确规定的东西就是 require 关键词。配置文件列出项目的依赖包和和可能包含的元数据。{ "require": { "monolog/monolog": "1.0.*&qu

微信支付后台进行退款操作时提示证书已过期处理(PHP)

之前没做过退款操作,因为业务没有涉及到,并且退款比支付流程还要复杂。没有特别要求是不会去搞的。但小程序平台是已经接好了微信退款操作,这个时候报错就得处理一下了。[notice]只有退款的时候才需要 API 证书,这也是为什么退款比支付更加复杂且难调试的原因。[/notice]申请(或更新)微信 API 证书提示证书已过期,说明之前是已经存在这样的证书配置了,需要到 微信支付后台 重新申请。我的情况

禾匠小程序商城安装脚本解析

前言没什么好说的,买的源码,yii2 框架,是禾匠科技开发的。从根目录的 version.json 文件内容 {"version": "2.9.35"} 了解了版本信息。禾匠科技官网上有两个版本,一个授权版,一个是开源版。授权版好处是可以得到支持和更新,但开户的小程序数量有限制,会收费;开源版可以一次性给到核心版源码(当然也是要收费的),后续开发需要自己解决

php 异地登录和唯一登录的检测和实现逻辑 - 附简单扫码登录实现逻辑

异地登录概念解释指网站或 APP 用户在不同地点登录到系统的行为。判断异地一般会使用用户登录 IP 地址作为参考标准,对于 APP 可以通过接入移动数据网络的位置定位到具体城市,所以 APP 采用的判定更加符合异地的定义。但对于网站来说,IP 地址判断是最简单也最可行对的方案了。检测和实现逻辑主要实现逻辑用户每次登录后添加一条登录记录,存放 IP 地址、登录时间等信息(没有做登录记录的,也可以将