分类: PHP
-
本文针对使用 php-ext-xlswriter 导出 Excel 时遇到的 Class not found 报错进行排查,通过下载并配置扩展解决了依赖缺失问题。随后处理了文件创建失败和索引越界的异常,发现关联数组兼容性和文件名非法字符是导致错误的关键原因。最终通过替换文件名中的冒号并匹配正确的扩展版本,成功实现了 Excel 文件的正常导出。
-
本文记录了在 Laravel 9 中执行 Redis::set 写入 Carbon 对象时遇到的数据类型差异问题,对比了生产环境写入 Object 与测试环境写入日期时间字符串的不同表现。通过对比 .env 文件发现,差异根源在于客户端配置的不同,详细分析了 PHPRedis 扩展与 predis/predis 包在处理该操作时的具体区别,最终根据配置差异确定了问题成因。
-
针对PHP中插入MySQL的JSON字符串中文已被编码的问题,文章先尝试对字符串进行整体URL解码,经在线工具验证可行,代码实现后确认中文恢复正常。针对请求参数中仍有中文未正常显示的情况,查明是因使用json_encode编码导致,最终采用先解码再重新编码,并添加JSON_UNESCAPED_UNICODE参数,实现了以字面形式编码多字节Unicode字符,解决了显示问题。
-
本文记录了解决 Call to undefined function Termwind\ValueObjects\mb_strimwidth() 报错的处理过程。该问题通常是由于 PHP 环境缺少 mbstring 扩展导致的。解决方法是在 php.ini 配置文件中找到 extension=mbstring 并取消注释,随后保存配置并重启服务。操作完成后,系统不再报错,函数恢复正常调用。
-
本文介绍了在 Windows 10 中将 PHP 升级至 8.1 版本的操作步骤。首先下载 VS16 x64 Thread Safe 版本,安装 Visual C++ Redistributable for Visual Studio 2019 运行库。随后解压文件到指定目录,修改系统环境变量路径,复制配置文件并根据需求调整参数。文章还说明了下载并配置 Redis 扩展的方法,最终通过查看 phpinfo 验证升级结果。
-
在执行 composer install 时,因系统缺少 PHP 的 rdkafka 扩展导致报错。通过从 PECL 下载对应 PHP 7.4 版本的 php_rdkafka.dll 并配置 php.ini,重启 PHP 仍提示无法加载动态库。参考官方文档后,将 librdkafka.dll 移至 PHP 根目录,再次重启 PHP 并查看 phpinfo 确认扩展启用成功,最终 composer install 恢复正常运行。
-
在 PHP 7.4 开发中,为了从一维数组中准确筛选出符合 uri 格式的数据,直接使用 filter_var 函数进行校验时,会将 internal://policy_pages/29 这样的非标准链接包含在内,导致结果不符合预期。通过改用 parse_url 函数获取 URL 的 scheme 部分,并严格判断其是否为 http 或 https,成功过滤掉了内部协议数据,实现了对标准外部链接的准确提取。
-
本文分析了在 Laravel 6 中利用数组函数操作数组时,因执行顺序不同导致输入数据产生差异的问题,涉及 include 和引用机制。针对变量名重名引发的冲突,之前的方案是更换变量名,但为快速定位问题,改为在文件开头打印所有变量,并将结果不为 null 的变量使用 unset() 全部销毁,最终确认需要销毁包括 sectionKey、blockKey 等在内的多个变量,从而解决执行异常。
-
文章介绍了在 PHP 7.4 中向索引数组的特定位置插入元素的方法。针对将两个元素添加到 price 字段之后的需求,利用 array_splice 函数去掉数组的一部分并用其它值取代的特性进行代码实现,最终打印运行结果符合预期,成功完成了在指定位置添加元素的操作。
-
针对 PHP 7.4 中出现的 array_key_exists 报错,文章分析了 require 返回 1 导致参数类型不符的原因。经排查,这是由于路径指定的缓存文件内容为空,未能按预期返回数组。文章通过模拟代码演示了 require 在不同文件内容下的返回值差异,并指出生产环境中文件为空的情况。最终结论是该问题源于文件写入逻辑致使文件内容为空。
