年度归档: 2021 年
-
在 Windows 10 中执行 PHP 命令行时,因 POSIX 扩展不可用导致调用 posix_getpid 函数报错。查阅官方文档确认该函数不支持 Windows 平台,建议使用 getmypid 替换。修改代码后再次执行,又因 posix_getppid 函数报错,经查该函数同样不适用于 Windows。最终通过判断当前系统环境,针对 Windows 平台采用替代方案解决了报错,命令行恢复正常执行。
-
针对Edge和Chrome浏览器禁用麦克风导致通话受阻的问题,本文详细介绍了排查与解决流程。操作包括检查Windows系统设置中的麦克风权限,以及在浏览器站点权限管理中将特定站点的麦克风设置为允许。完成设置后,通过重新加载页面并在弹窗中点击允许,成功启用了麦克风和摄像头功能。
-
在 Yii 2.0 中使用数据库迁移创建主键时,默认的 primaryKey() 方法仅支持生成 int(11) 类型的主键,无法直接满足创建 varchar(32) 字符串类型主键的需求。为了解决这个问题,文章采取了先创建字符串类型字段,随后在表创建完成后使用 addPrimaryKey() 方法将该字段设置为主键的操作流程。最终通过这一分步方式成功实现了基于字符串类型的主键功能。
-
在渠道发布中出现 SQLSTATE[01000] 警告,提示 pub_log_code 字段数据截断。排查发现数据库表字段定义为 int 类型,但通过 $e->getCode() 获取的值为字符串 42S22。经确认 Yii 2.0 框架响应的 code 值可能为非数字类型字符串。解决方案包括修改字段类型为 varchar 或转换代码数值类型,同时发现根本原因在于表结构变更导致的 SQL 语法错误异常。
-
文章探讨了在 PHP 中基于 HTTP 协议检测远程文件大小的方法。针对此前使用文件系统函数在处理 301 跳转时无法获取真实大小的问题,作者改用 get_headers 函数获取服务器响应标头。新方案在无需跳转时代码更简洁且耗时更短;若存在 301 跳转,则继续请求跳转后的接口地址,最终成功获取文件的真实大小。
-
针对渠道发布中文件过大导致上传失败的问题,文章探讨了在 PHP 中基于 HTTP 协议检测远程文件大小以优化用户体验的方法。通过使用文件系统函数 fopen 配合变量 $http_responseheader 获取响应头,无需下载文件即可读取 Content-Length 确定文件大小。测试发现当变量不存在时读取资源流耗时过长,因此在实现中决定直接返回 false,最终成功实现了不下载文件即可获取远程文件大小的目标。
-
文章针对微信接口报错提示无效内容的问题,分析出原因是文稿包含特定标签 mpvoice。为节省用户等待时间,决定在调用接口前检测 HTML 中是否存在该标签。通过编写正则表达式代码实现检测,验证结果表明该方法能准确匹配封闭且完整的 HTML 标签,而不会误判普通文本内容,从而有效拦截包含违规标签的请求。
