-
date()格式字符串需严格按大小写敏感的字符规则编写,如Y为4位年份、y为2位、m为带零月份、n为不带零月份;错误示例Y-M-DH:I:S中M/D/I会输出英文缩写或夏令时标志而非数字。
-
setcookie()必须在任何输出前调用,因它发送HTTP头部;一旦有空格、换行、HTML或BOM等输出,就会报“headersalreadysent”警告。
-
应使用foreach引用修改数组元素权限字段,array_map仅返回新数组且无法就地修改;需加&符号引用赋值、unset防止残留,并注意嵌套结构、对象判断、筛选过滤及持久化同步。
-
PHP后端必须显式设置CORS响应头,如Access-Control-Allow-Origin、Methods、Headers和Credentials,并在任何输出前调用header();需主动处理OPTIONS预检请求并动态校验Origin白名单,禁用通配符与credentials共存。
-
phpEnv默认不启用防盗链,需手动在站点vhost配置中添加Nginx的valid_referers规则;必须使用phpenvnginxrestart重启,且白名单须包含none、blocked及完整域名(如*.yourdomain.com),避免Referer为空或被拦截导致合法访问失败。
-
count和sizeof在PHP中功能完全相同,均为获取数组或可数对象元素数量的函数,底层共享同一实现,性能无差异;但count是官方推荐名称,语义更准确,而sizeof易引发误解且工具链支持较弱。
-
PHP系统命令中文乱码需统一编码:一、用iconv转换(Windows转CP936→UTF-8);二、用mb_convert_encoding自动检测转换;三、putenv设置LANG/LC_ALL为zh_CN.UTF-8(Linux)或chcp65001(Windows);四、proc_open控制流并配合编码处理;五、参数传入前先转系统原生编码再escapeshellarg。
-
子查询分组统计必须用selectSub()而非withCount(),因后者仅支持简单计数,不支持GROUPBY、CASEWHEN等;selectSub()支持标量子查询、显式关联、索引优化及COALESCE兜底。
-
phpEnv中ExpiresActive默认不生效,因mod_expires模块未启用且httpd.conf未配置ExpiresActiveOn;需取消注释LoadModuleexpires_module、添加ExpiresActiveOn、确保AllowOverride含FileInfo,并排查PHPheader覆盖。
-
PHP不能实现渐变动画,因其仅负责输出HTML/CSS/JS代码,实际动画由浏览器通过CSStransition或JavaScriptrequestAnimationFrame完成,PHP只传递初始配置和安全数据。
-
PHP隐错需用set_error_handler捕获E_NOTICE/E_WARNING等非终止错误并返回true,致命错误则用register_shutdown_function+error_get_last兜底,邮件告警应配置合法头信息、限频防风暴,并从环境变量读取管理员邮箱。
-
真降级是基于状态的熔断决策,需Redis存储健康状态与失败计数、滑动窗口统计、异步判断失败率、客户端中间件拦截、Redis故障时保守兜底、按业务语义设计fallback并标注响应头。
-
substr()按字节截取会导致中文等多字节字符乱码,应使用mb_substr()和mb_strlen()按字符处理,且必须显式指定'UTF-8'编码。
-
若安装宝塔面板提示“磁盘空间不足”,需先用df-h和du命令定位大目录,再清理journal日志、网站日志、包管理缓存、宝塔临时文件及旧版残留,必要时对云服务器系统盘扩容并扩展分区。
-
初始化客户端最常错在Endpoint写错或Bucket地域权限未开通;国内用户需按实际Bucket地域(如oss-cn-shenzhen)配置对应Endpoint,子账号AK/SK须具备OSS操作权限。