没有不值得去解决的问题,也没有不值得去学习的技术!

分类: PHP 7.4

  • 在使用 Homestead v13.2.1 运行项目时,因默认 PHP 8.0 版本与软件包依赖冲突导致 Composer 更新报错。通过修改 Homestead.yaml 配置指定站点 PHP 版本,并执行 vagrant reload –provision 重启虚拟机。在解决共享文件夹为空的问题后,下载 composer.phar 并使用 php7.4 命令执行更新,最终成功切换至 PHP 7.4.14,访问首页确认环境符合预期。

  • 在 PHP 7.4 环境下运行代码时出现了 Illegal offset type in isset or empty 报错。经排查,变量 $setting 的值为对象,而代码直接尝试将其作为数组偏移量进行访问。通过将 $setting[‘settingId’] 转换为字符串后,再次打印数值确认转换成功,问题随之解决,程序不再报错。

  • 针对PHP 7.4中使用ltrim函数删除字符串开头字符时,导致下划线前字符串丢失的问题进行排查。发现原因在于第二个参数末尾包含斜杠,导致函数将下划线也视为需删除的字符。调整参数去掉末尾斜杠后,ltrim虽能返回预期结果,但最终决定改用substr函数来实现字符串截取,确保逻辑稳定且结果符合预期。

  • 本文记录了在应用 .gitignore 类规则时解决配置未生效问题的过程。针对 /assets/apps/ 目录下的特定文件未被忽略的情况,确认 TOGoS/PHPGitIgnore 解析器不支持双星号语法。随后修改配置规则,限定 /apps 目录下仅保留 .php 文件,最终成功实现了忽略其他类型文件的目标,符合预期效果。

  • 针对模板目录中无需忽略的文件被写入数据库的问题,文章尝试使用 PHP 的 RecursiveFilterIterator 类实现自定义过滤。通过新建 ThemeViewIgnoreFinder 获取忽略规则,并扩展 ThemeViewRecursiveFilterIterator 实现 accept 方法,解决了运行时报错及子类获取问题。最终修正了文件路径过滤规则,成功避免了如 node_modules 等特定目录及文件被写入数据库,达到了预期效果。

  • 针对文件夹中存在类似 .gitignore 的配置文件 .themeignore 需要解析并应用过滤规则的问题,文章介绍了通过 Composer 安装 TOGoS/PHPGitIgnore 组件的方法。作者参考测试文件实现了具体的解析逻辑,成功通过布尔值判断文件路径是否应被忽略。最终结论显示该方法能够准确生成过滤结果,并可用于基于原目录遍历创建仅包含所需文件的新目录。

  • PHP 7.4 可以通过 ZipArchive 类的 extractTo 方法实现 ZIP 文件解压。本文提供了具体实现参考,演示了如何将压缩文件内容释放到指定目录。操作结果显示,解压后的目录结构与原始文件名保持平级且同名,满足了基础的文件解包需求。

  • 网页请求参数输入反斜杠导致阿里云日志服务报错 JSON 解析失败,排查发现参数经缓存处理后转义丢失。在模板文件中尝试使用 addslashes 函数转义后引发引号解析错误,随后改用 addcslashes 函数仅转义反斜杠。测试发现双引号与换行符解析仍失败,最终调整参数同时转义反斜杠与双引号,并修正换行符处理方式。经测试 JavaScript 代码未被注入,富文本输入解析成功,问题解决。

  • 本文探讨了在 PHP 7.4 中重新索引多维数组的重构实现。文章首先查看了现有代码,旨在使用数组中 name 列的值作为新键,随后指出了原实现中使用 array_combine 并非必要。最终通过将 array_column 函数的 column_key 参数设为 null,直接配合 index_key 参数完成了数组重新索引,验证结果显示符合预期,成功简化了代码逻辑。

  • 文章分析了 PHP 7.4 中 json_decode 解码失败的问题。通过对比不同数据解码结果,发现错误值等于 4 即 JSON_ERROR_SYNTAX 语法错误。检查数据后发现,未加引号的模板语法导致字符串格式异常。删除相关内容后解析成功,最终明确根本解决需确保数据类型正确,即由程序生成合法的数值格式,而非简单的字符串替换。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) add (16) AI 翻译 (31) Apache (13) Array (19) A Tour of Go (69) Cache (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (34) Codex (22) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (33) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (62) go-tour-i18n (14) Google AdSense (29) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (35) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (51) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (21) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (39) Windows 10 (46) WireGuard (28) WordPress (134) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言网站 (13) 多语言翻译 (36) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930