PHP 7.4 分类归档 - 永夜 https://www.shuijingwanwq.com/category/programming-language/php/php-7-4/ 没有不值得去解决的问题,也没有不值得去学习的技术! Sun, 02 Aug 2026 03:33:53 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.1.3 https://media.shuijingwanwq.com/2026/05/logo-150x150.png PHP 7.4 分类归档 - 永夜 https://www.shuijingwanwq.com/category/programming-language/php/php-7-4/ 32 32 在 PHP 7.4 中检测是否是移动设备,进而渲染不同的模板文件 https://www.shuijingwanwq.com/2025/07/05/9193/ Sat, 05 Jul 2025 11:19:05 +0000 https://www.shuijingwanwq.com/?p=9193 针对前端页面在移动端与桌面端分离的需求,文章介绍了在 PHP 7.4 环境下检测移动设备并渲染不同模板的方法。受限于 PHP 版本,选用了 Mobile-Detect 3.* 系列轻量级类库,而非要求 PHP 8 的 4.* 版本或长期未更新的 Yii2 扩展。通过配置 composer.json 安装 mobiledetect/mobiledetectlib 依赖后,文章展示了在控制器中实现的具体逻辑。

在 PHP 7.4 中检测是否是移动设备,进而渲染不同的模板文件最先出现在永夜。

]]>
preg_split 执行中文后的结果,有乱码 https://www.shuijingwanwq.com/2025/05/24/9042/ Sat, 24 May 2025 05:59:25 +0000 多选一 [1] => 多选二 )]]> https://www.shuijingwanwq.com/?p=9042 使用 preg_split() 处理中文字符时会出现乱码或拆分错误的问题。解决方法是在使用该函数前先将字符串转换为 UTF-8 编码,并在正则表达式后添加 u 修饰符以启用 Unicode 模式。此操作能够确保中文字符被正确识别和拆分,从而消除乱码并使执行结果符合预期。

preg_split 执行中文后的结果,有乱码最先出现在永夜。

]]>
在 Yii2 中,file_get_contents(“https://api.weixin.qq.com”); 时报错:yii\base\ErrorException: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: https://www.shuijingwanwq.com/2025/04/21/8981/ Mon, 21 Apr 2025 03:38:50 +0000 https://www.shuijingwanwq.com/?p=8981 在 Yii2 中使用 file_get_contents 请求微信接口时报错 SSL operation failed。文章分析了该问题由于 CA 证书缺失或配置错误导致,尝试在 php.ini 中配置 openssl.cafile 并重启服务后仍未解决。最终通过基于 curl 重新实现请求逻辑,成功绕过了 SSL 验证问题并解决了报错。

在 Yii2 中,file_get_contents(“https://api.weixin.qq.com”); 时报错:yii\base\ErrorException: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:最先出现在永夜。

]]>
在 curl 请求 https 网址,响应为 false 的排查分析 https://www.shuijingwanwq.com/2025/04/19/8979/ https://www.shuijingwanwq.com/2025/04/19/8979/#comments Sat, 19 Apr 2025 01:46:03 +0000 https://www.shuijingwanwq.com/?p=8979 文章针对 curl 请求 https 网址时响应为 false 的问题进行了排查分析。通过 var_dump 检查请求返回值为 false 后,操作过程是在 php.ini 中配置 openssl.cafile 路径。重启 php-fpm 服务后,问题得到解决,不再响应 false,完成了对 curl 请求异常的修复。

在 curl 请求 https 网址,响应为 false 的排查分析最先出现在永夜。

]]>
https://www.shuijingwanwq.com/2025/04/19/8979/feed/ 2
在 LNMP 2.1 中,安装并启用 PHP EXIF 扩展的流程 https://www.shuijingwanwq.com/2025/04/17/8973/ Thu, 17 Apr 2025 01:49:36 +0000 https://www.shuijingwanwq.com/?p=8973 本文针对 PHP 报错提示 exif_imagetype 函数未定义的问题,记录了在 LNMP 2.1 环境中安装并启用 PHP EXIF 扩展的操作流程。首先通过 phpinfo 确认扩展所在目录,随后进入 LNMP 安装目录运行 addons.sh 脚本安装 exif 扩展,完成安装后重启 PHP-FPM 服务使更改生效,最后通过查看 phpinfo 验证扩展已成功启用。

在 LNMP 2.1 中,安装并启用 PHP EXIF 扩展的流程最先出现在永夜。

]]>
基于 LNMP 2.1 部署后,接口响应 500 ,原因在于 .user.ini 的配置 open_basedir 有误 https://www.shuijingwanwq.com/2025/04/14/8969/ Mon, 14 Apr 2025 01:58:39 +0000 https://www.shuijingwanwq.com/?p=8969 基于 LNMP 2.1 部署后接口响应 500,查看 Nginx 错误日志发现报错提示 open_basedir 限制生效,目标文件不在允许路径内。检查项目目录下的 .user.ini 文件确认配置问题,执行 chattr 命令解除文件锁定后尝试修改,但问题依旧。最终决定删除 .user.ini 文件,改为直接在 php.ini 中进行相关设置以解决该报错。

基于 LNMP 2.1 部署后,接口响应 500 ,原因在于 .user.ini 的配置 open_basedir 有误最先出现在永夜。

]]>
执行:composer install 时,提示:enqueue/rdkafka 0.10.19 requires ext-rdkafka -> it is missing from your system. Install or enable PHP’s rdkafka extension. https://www.shuijingwanwq.com/2023/12/13/8274/ Wed, 13 Dec 2023 01:48:18 +0000 https://www.shuijingwanwq.com/?p=8274 在执行 composer install 时,因系统缺少 PHP 的 rdkafka 扩展导致报错。通过从 PECL 下载对应 PHP 7.4 版本的 php_rdkafka.dll 并配置 php.ini,重启 PHP 仍提示无法加载动态库。参考官方文档后,将 librdkafka.dll 移至 PHP 根目录,再次重启 PHP 并查看 phpinfo 确认扩展启用成功,最终 composer install 恢复正常运行。

执行:composer install 时,提示:enqueue/rdkafka 0.10.19 requires ext-rdkafka -> it is missing from your system. Install or enable PHP’s rdkafka extension.最先出现在永夜。

]]>
在 PHP 7.4 中,判断变量值是否为 uri 格式的数据 https://www.shuijingwanwq.com/2023/11/13/8197/ Mon, 13 Nov 2023 02:38:48 +0000 https://www.shuijingwanwq.com/?p=8197 在 PHP 7.4 开发中,为了从一维数组中准确筛选出符合 uri 格式的数据,直接使用 filter_var 函数进行校验时,会将 internal://policy_pages/29 这样的非标准链接包含在内,导致结果不符合预期。通过改用 parse_url 函数获取 URL 的 scheme 部分,并严格判断其是否为 http 或 https,成功过滤掉了内部协议数据,实现了对标准外部链接的准确提取。

在 PHP 7.4 中,判断变量值是否为 uri 格式的数据最先出现在永夜。

]]>
基于 数组相关函数 操作数组后,同样的输入,在不同执行顺序下的差异的分析(include、引用) https://www.shuijingwanwq.com/2023/10/20/8125/ Fri, 20 Oct 2023 01:45:11 +0000 https://www.shuijingwanwq.com/?p=8125 本文分析了在 Laravel 6 中利用数组函数操作数组时,因执行顺序不同导致输入数据产生差异的问题,涉及 include 和引用机制。针对变量名重名引发的冲突,之前的方案是更换变量名,但为快速定位问题,改为在文件开头打印所有变量,并将结果不为 null 的变量使用 unset() 全部销毁,最终确认需要销毁包括 sectionKey、blockKey 等在内的多个变量,从而解决执行异常。

基于 数组相关函数 操作数组后,同样的输入,在不同执行顺序下的差异的分析(include、引用)最先出现在永夜。

]]>
在 PHP 7.4 中,在索引数组中添加元素至特定的位置(array_splice) https://www.shuijingwanwq.com/2023/09/28/8082/ Thu, 28 Sep 2023 01:38:14 +0000 https://www.shuijingwanwq.com/?p=8082 文章介绍了在 PHP 7.4 中向索引数组的特定位置插入元素的方法。针对将两个元素添加到 price 字段之后的需求,利用 array_splice 函数去掉数组的一部分并用其它值取代的特性进行代码实现,最终打印运行结果符合预期,成功完成了在指定位置添加元素的操作。

在 PHP 7.4 中,在索引数组中添加元素至特定的位置(array_splice)最先出现在永夜。

]]>