Thinkphp 3.23 视图模板中使用数组作为查询条件出现的错误
探索整理一个基于 thinkphp 3.23 的 crm 系统,可能因为本地 PHP 版本较高的原因,本地测试出现很多 bug。页面报错:Column not found: 1054 Unknown column 'A' in 'where clause',后面跟了一大堆的 trace 信息。通过排查,找到最终的错误文件,在模板文件中:<php> if(isset($_REQU
探索整理一个基于 thinkphp 3.23 的 crm 系统,可能因为本地 PHP 版本较高的原因,本地测试出现很多 bug。页面报错:Column not found: 1054 Unknown column 'A' in 'where clause',后面跟了一大堆的 trace 信息。通过排查,找到最终的错误文件,在模板文件中:<php> if(isset($_REQU
调试一个基于 thinkphp 的 crm 系统,可能因为本地 PHP 版本较高的原因,本地测试出现很多 bug,如这次发现的错误::( 'break' not in the 'loop' or 'switch' context ... FILE: D:\Projects\xcrm3_tp\Core\Library\Org\Util\PHPExcel\Calculation\Functions.p
多模块模式和单模块模式不是 thinkphp 5.1 的新特性,但我还是在这方面栽了个跟头。5.1 版本后,框架核心可以通过 composer 进行更新。应用配置文件从原来的 config.php 变成了 app.php。多模块模式就属于应用配置这一级别。模块配置有两个主要应用参数:app_multi_module 和 auto_bind_module,其中 app_multi_module 控制
简单版/** * 判断字符串是否base64编码 */ function func_is_base64($str) { return $str === base64_encode(base64_decode($str, true)) ? true : false; }简单版判断字符串是否为 base64 编码,主要根据 base64_decode 函数在解码非 base64 字母表
前言作为一个成熟的框架,对于多种服务器环境,应该提供虚拟主机标准配置样例的,但 ThinkPHP(以下统称为 tp) 并没有这样做,而是在文档 架构 模块的 URL 访问 章节提了一下 tp 的 URL 重写。[ Apache ] httpd.conf 配置文件中加载了 mod_rewrite.so 模块 AllowOverride None 将 None 改为 All 把下面的内容保存为 .ht
PHP 是一门神奇的语言,神奇在于你可能不清楚大多数函数的实现,但只要调用得当,就能达到你想要的效果。Destoon 框架:跟主流框架不太相同,Destoon 本身实现了一个包含电商的网站,包括 pc 端和移动端。刚接触这个框架的时候,感觉路由混乱,到处都是入口。这应该是之前习惯了单一入口框架的结果。熟悉之后发现,Destoon 很棒,逻辑结构清晰、层级分明。所以这就是一个熟悉的过程。另外让人惊叹
php 不支持下标取值 -1 代表最后一个元素(python 也不支持),你当然可以使用 $arr[count($arr)-1] 来获取最后一个值,但除此以外是否还有其他方法(内置方法)可以实现这样的功能呢?以下是 php 获取数组最后一个值有三种方法(来源于网络):end()<?PHP $array = array(1,2,4,6,8); echo end($array); ?> a
2020-09-27 更新在代码中使用 mb_strlen($str) 和 mb_substr($str, 1) 隐藏用户名,服务器端(php 5.2)执行出现了乱码。针对服务端 php 脚本文件做了以下补充测试:服务器环境:windows server 2008 R2 Enterprise,64x,php5.2.17,php 脚本,文件编码 utf-8。echo strlen('中国'),'&l
前言公司使用的是 destoon 框架,后续又做了很多二次开发,由于前端人员的疏忽,对原有的样式不熟悉,致使本来就因为内嵌 php 的模板页面非常混乱,有的样式缺失,有的则是开发到一半。上手 destoon 时,用了大概一周的时间才熟悉了 destoon 特有的路由规则和整体的框架架构。destoon 没有像一般的主流框架那样统一入口文件,所以最外层的文件夹大部分都作为具体模块的访问路径的一部分,
维护代码的时候,发现了一段比较有意思的代码:$history_number = 3; $m_history = get_cookie('mcity'); if (!empty($m_history)) { $history = explode(',', $m_history); array_unshift($history, $mcityid); $history = ar