-
PHP文件上传失败需先查$_FILES为空或error非0;常见原因包括表单缺enctype、配置超限、临时目录不可写等;move_uploaded_file()须校验is_uploaded_file且禁用用户文件名;上传类应仅传存储路径、类型白名单、大小阈值。
-
PHP8.0+中is_scalar(null)返回true,而PHP7.x返回false;需用is_scalar($v)&&$v!==null确保排除null的标量判断。
-
宝塔面板读不到my.cnf配置,主因是文件含BOM或编码异常、重载配置不重新读取my.cnf、参数位置错误或socket路径不一致;需用file-i查编码、mysqld--validate-config校验语法、显式指定socket并restart生效。
-
PHP字符串去重需保序且按语义定义重复:单字节用遍历+关联数组;UTF-8中文须用mb_substr;分词去重需正则提取汉字块与英文单词;柔性去重应标准化键值映射原始字符。
-
克隆站点报错mysqli_connect():(HY000/1045)主因是数据库配置未更新:需手动修改.env/wp-config.php/config.php中的主机、用户名、密码、库名;新用户须在宝塔数据库页单独创建并授权;Redis/Memcached配置、软链接、计划任务、SSL证书及mysqldump导出参数均需同步调整。
-
PHP无原生运行时注解,需通过DocBlock注释+DoctrineAnnotations等库解析实现;DocBlock须以/*开头、/结尾、紧贴声明上方;推荐doctrine/annotations用于运行时,phpdocumentor/reflection-docblock用于静态分析;PHP8+支持原生Attributes但与DocBlock不兼容。
-
X-Frame-Options在phpEnv的Nginx中应配置在站点conf文件的location~.php$块内,写为add_headerX-Frame-OptionsSAMEORIGINalways;,并优先用CSP的frame-ancestors替代。
-
PHP字符串拼接必须用点号.,不可用加号+,因+会触发数字转换导致意外结果;推荐用.=进行累积拼接,注意类型隐式转换陷阱。
-
中间表需手动创建并严格遵循命名与结构规范:按字母序拼接单数模型名(如article_tag),字段用foreignId+constrained,加唯一联合索引,不设主键,迁移须在主表之后执行。
-
ThinkPHP6已移除$auto和$_auto等自动完成机制,需改用修改器(如setCreateUserIdAttr)或beforeWrite钩子实现创建者/更新者ID自动写入,且仅在模型save()/create()中生效。
-
用户点击Excel导出按钮时需同步执行PHP业务逻辑,可通过四种方法实现:一、表单提交触发PHP脚本;二、AJAX预处理后跳转导出URL;三、在Excel生成脚本内嵌业务逻辑;四、利用输出缓冲与Header组合控制流程。
-
PHP内存耗尽主因是代码或扩展缺陷而非memory_limit过低,需优先排查内存泄漏、禁用冗余扩展、优化脚本逻辑;调高limit须同步调整php-fpm子进程数防OOM。
-
PHPEnv下延长session有效期需同步配置PHP-FPM的php_admin_value、确认存储后端(文件需可写且磁盘充足,Redis需设expire参数)、并重启对应FPM服务,仅改php.ini无效。
-
PHP密码哈希强制使用Argon2或bcrypt,须通过代码规范、配置约束和运行时检查确保仅走安全路径:禁用不安全函数、封装统一API、分层适配算法、登录时自动升级旧哈希,并在部署阶段验证环境兼容性。
-
答案:PHP中可通过array_slice截取拼接实现循环左移右移,或用索引映射重排数组,也可借助array_shift与array_push逐位左移,以及array_pop与array_unshift实现右移操作。