-
应开启PHP错误显示并配置error_reporting为E_ALL,可通过修改php.ini中display_errors=On、重启服务器,或在脚本开头用error_reporting(E_ALL)和ini_set('display_errors','1')动态启用。
-
宝塔面板站点打开慢的关键在于文本资源压缩不足;需手动编译Nginx添加Brotli模块并正确配置,因宝塔内置Gzip开关仅作用于单站点且不支持Brotli,而原生Nginx无该模块,配置brotlion会静默失效。
-
PHP无内置ArrayList类,echo数组会显示“Array”或报错,因echo仅支持字符串;应使用print_r($arr,true)、var_dump($arr)或json_encode($arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)清晰输出。
-
PHP数据库升级需同步检查协议兼容性、SQL行为变更、字符集一致性及依赖适配;如MySQL8.0需处理caching_sha2_password认证、GROUPBY排序显式化、utf8mb4默认字符集;PostgreSQL升级需关注SSL模式、jsonb类型检查与扩展版本匹配。
-
Nuxt.jsSSR项目在宝塔面板上必须通过npmstart启动服务、PM2守护进程、Nginx反向代理(指向127.0.0.1)暴露端口,且nuxt.config.js需显式配置host:'0.0.0.0'并开放防火墙对应端口,缺一不可。
-
PHP中日期时间注释需明确值来源、格式规范、时区上下文三要素,如//$ts=1710512400//UTCtimestamp,2024-03-15T14:20:00Z;字符串须注明格式及时区,如//'2024-03-1514:20:00'//'Y-m-dH:i:s',Asia/Shanghai;优先使用类型声明和验证替代冗余注释。
-
PHP临时文件路径需分场景配置:upload_tmp_dir专管上传中转,sys_temp_dir影响tmpfile()等系统级临时操作,代码中可用tempnam()或tmpfile()动态控制,配置后须验证并确保目录存在、权限正确、无安全策略限制。
-
伪静态由Web服务器实现,PHP仅解析重写后的路径;Apache需启用mod_rewrite、AllowOverrideAll并正确命名.htaccess;Nginx用try_files或rewrite配合fastcgi_param;PHP通过$_GET、PATH_INFO或s参数获取路由信息;内置服务器需router.php接管请求。
-
函数内用$var=...声明的变量默认为局部变量,仅在函数执行期间存在,返回后自动销毁;static变量只初始化一次并保留上次值;global和$GLOBALS可修改全局变量但易引发混乱;闭包需use显式捕获外部变量。
-
必须用SETkeyvalueNXEX原子命令加锁,因setnx+expire非原子,Webman多worker下易留永不过期死锁;解锁须Lua校验value后删除,防止误删;value需含pid和uniqid确保唯一,锁应加在DB操作逻辑块而非命令入口,key须含时间维度且所有实例连同一RedisDB。
-
必须校验$_POST字段存在且非空,优先用filter_input()过滤输入,嵌套命名处理多值表单,输出时按上下文选用htmlspecialchars()或json_encode()。
-
hreflang标签必须由PHP动态生成且双向对称,语言代码需严格匹配ISO标准,URL须可访问并返回200,内容须实质性差异化,否则无效甚至导致降权。
-
PHP无法直接判断超线程是否开启,需通过解析/proc/cpuinfo或exec('lscpu')获取逻辑CPU数与物理核心数比值推断;Windows下基本不可行,容器等环境易误判。
-
PDO与ORM是分层协作关系,PDO为底层接口,ORM构建其上;应仅在ORM不足时用PDO,且须复用连接、同步事务、规范类型处理并封装为独立服务。
-
PHP闭包中直接捕获循环变量$i会导致所有闭包共享同一引用而输出最终值;应使用use($i)按值捕获,避免use(&$i),引用循环变量需先解引用再use。