为什么 destoon 网站切换分站城市后访问某些页面,分站城市自动跳转(切换)到 IP 定位城市?

如题,destoon 网站在切换分站城市后访问某些页面时,分站城市自动跳转(切换)到 IP 定位城市。控制和存储当前分站城市的是 cookie 值 xx_city,字段名前缀由 config.inc.php 中的 cookie_pre 定义。在代码中全局搜索,找到根目录下 common.inc.php。$cityid = 0; $city_name = $L['allcity']; $city_d

Linux 下安装 destoon7 过程

destoon 介绍destoon 是一个 b2b 网站管理系统,商用需要 购买授权。它提供了很多的增值服务,包括移动客户端和小程序,还可以提供一些产品技术服务。这套系统经过十年左右的产品迭代升级,功能已经趋于完整。目前版本为 v7,购买之后估计还会有一些代码升级包。我这边只是测试 destoon 框架的一些特性,所以直接下载 官方版本 就好。要不是官网做了二次开发,修改了太多的东西,升级版本其实

PHP 类的构造函数和析构函数

通常一提到 PHP 的构造函数和析构函数,就会想到两个单词 construct 和 destruct,构造和解构。在学习 PHP 的时候,了解到的构造函数和析构函数就是 __construct() 和 __destruct()。以 __ 开头的方法在 PHP 中称为魔术方法。PHP 中的魔术方法__construct(), __destruct(),__call(), __callStatic()

为什么 Highcharts 使用静态数据可以正常显示图表,但使用数据库中数据就不显示?

Highcharts 作为前端图表显示插件,非常简单好用,拿官网上的 demo 直接改几个参数就可以直接用了。但是最近使用时发现,php 使用数据库查询出来的数据填充到 Highcharts 中,图表突然不显示了。使用静态数据测试又恢复正常。研究了一下发现,是数据类型的问题。php 从数据库中取出的数据(基本是原生 php 语言,一些框架可能做了数据类型判断和自动转换)都是字符串类型的,即整型或浮

微信小程序的坑 (二)只能触发一次的一次性订阅消息

第一次接触微信小程序的订阅消息,之前见过的是公众号内部推送的那种模板消息。先来看一下官方文档的介绍:传送门。功能介绍订阅消息推送位置:服务通知订阅消息下发条件:用户自主订阅订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面操作流程步骤一:获取模板 ID在微信公众平台手动配置获取模板 ID,模板 ID 用于步骤三中接口下发订阅消息。步骤二:获取下发权限详见小程序端消息订阅接口 wx.reque

yii2 在模型中直接返回结果

正常情况下,返回结果的操作会由控制器执行。return [ 'code' => 0, 'msg' => "短信已发送" ];对于返回类型为数组的情况,yii2 会自动将其转化为 JSON 字符格式,并修改返回类型为 JSON。但如果是在模型中就要直接返回呢? 官方文档给出了几组范例,比如说抛出异常,浏览器跳转,发送文件和发送相应。比较符合需求的,就是

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

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

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

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

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

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

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

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