tp6 修改器不触发、不起作用解决方法

使用 catchAdmin(tp6 框架)二次开发时发现,ThinkPHP6 修改器似乎没有触发,不起作用。在 tp6 的官方文档中 修改器 一节明确指出了以下四种触发修改器的情况:模型对象赋值;调用模型的 data 方法,并且第二个参数传入 true;调用模型的 save 方法,并且传入数据;显式调用模型的 setAttr 方法;因为 save 的存在,正常保存数据的时候就会触发修改器。修改器这

- 阅读全文 -

`session_start()`执行阻塞卡顿

今天在更新代码后,突然发现后台登录不了了,一直处于加载状态。通过卡点代码确定了问题的位置 session_start()。不明白为什么本地执行没有问题,更新代码后会出现这样的情况。百度搜索到的解决方案都是在 session_start() 之后再关闭 session:session_close()、session_write_close()。大致的解释是,每次只开启 session 而没有关闭,导

- 阅读全文 -

php 获取当前毫秒(整数)

正常通过 microtime() 获取到的是一个这样格式的字符串 0.15852100 1612176374。这是一个 Unix 时间戳的微妙表示,前面的小数单位是秒。microtime() 函数可以接受一个 bool 类型的参数,传递是否返回一个浮点数。microtime(true) 返回 1612176526.1222,精度减小了。所以,转化为毫秒单位的整数即为:intval(microtim

- 阅读全文 -

php 定义空对象

$obj1 = new \stdClass; // Instantiate stdClass object $obj2 = new class{}; // Instantiate anonymous class $obj3 = (object)[]; // Cast empty array to object var_dump($obj1); // object(stdClass)#1 (0)

- 阅读全文 -

使用 simple_html_dom 库解析 html 内容

之前使用过 simple_html_dom 这一类库做解析,这一类库本身并不大,可以直接引入文件,让后封装到 helper 或者全局函数库里以备随时使用。下载文件:simple_html_dom.txt ,下载后将文件后缀修改为 .php 即可。github 原始地址:samacs/simple_html_domgithub 最新维护地址:Simple Html Dom Parser for PH

- 阅读全文 -

php 处理金额类型数据保留两位小数

我习惯用 number_format 函数,返回类型为字符串:number_format($price, 2, '.', '');后面两个参数依次为小数点符号和千分之符号(默认,,所以需要手动去除)还有一个专门处理字符串格式化输出的方法 sprintf:sprintf('%.'.$precision.'f', $price);另附四舍五入方法 round ($val, $precision = 0

- 阅读全文 -

百度统计(百度账号)授权回调页设置后跳转到百度账号登录报错:redirect_uri_mismatch 百度回调地址错误

如题,在接入百度统计接口数据时发现,使用百度账号接口的 百度账号登录 流程报错:错误代码:redirect_uri_mismatch,错误信息:Invali redirect uri,详细描述:授权回调地址错误。具体内容请开发者参考“redirect uri”验证方式。按照百度的帮助文档去定位错误原因,然后通过 百度账号接口说明 中的 百度开发者中心控制台 登录到项目工程列表,里面是之前创建的一些

- 阅读全文 -

php 使用字符判断 bool 值 true or false 注意事项

学习 php 的时候有看到过相似的总结归纳,但还是会忘,只有自己在实践中犯错了才能印象深刻。很多时候会把一个字符串、或者一个数组作为判定条件,然后不经意间就犯错了。比如 '0' == false 是 ok 的,但 '0.0' 值为 true。数组里面 array() == false 是 ok 的,但 array(0) 值为 true。== 在判断条件里是会自动转换两边类型的,当直接将字符串或者数

- 阅读全文 -

php 序列化存储数组数据到 cookie 中,取出后再反序列化为 false

不推荐将数组数据通过 serialize() 存储到 cookie 中,因为:Cookie 名称可以设置成数组名称,PHP 脚本里会是数组, 但用户系统里储存的是单独分开的 Cookie。 可以考虑使用 explode() 为一个 Cookie 设置多个名称和值。 不建议将 serialize() 用于此处,因为它会导致安全漏洞。—— 注释 - setcookie - php.net这边仅作测试使

- 阅读全文 -