-
PHPjson_encode()默认不支持UTF-8以外的编码,多语言文本会变乱码PHP的json_encode()要求输入字符串必须是UTF-8编码,否则直接返回false或输出空字符串。常见于从数据库读出GBK/GBK2312编码的中文、或读取本地ini文件时没转码。用mb_detect_encoding()检查原始字符串编码,别凭感觉假设是UTF-8强制转码再编码:json_encode(mb_convert_encoding($text,'UTF-8'
-
应使用本地集成环境(如XAMPP)、PHP内置服务器、Nginx+PHP-FPM、VSCode插件或云平台五种方法配置PHP数据库脚本运行环境,确保PHP解释器与数据库扩展正常工作。
-
宝塔面板8.x及以上版本中阿里云OSS插件已从官方软件商店下架,需手动安装社区版(如lizhong1994维护的bt-oss),或改用腾讯云COS/七牛云插件;密钥须用RAM子用户AK/SK并授AliyunOSSFullAccess权限,region填标准ID(如oss-cn-hangzhou),bucket名全小写且不含域名。
-
根本原因是Windows找不到php.exe,因PHP安装目录未正确添加到系统Path环境变量中;需确认php.exe真实路径、不带尾部反斜杠地添加至Path,重启CMD并用wherephp验证。
-
PHP无法直接连接Hive,必须通过Thrift协议(推荐)或HTTP网关;需编译thrift_protocol扩展、生成TCLIService.php类,经TSocket/TBinaryProtocol调用OpenSession/ExecuteStatement/FetchResults完成查询。
-
PHP运行必须依赖物理内存,无内存条则无法启动;所有操作均在RAM中执行,OOM会导致进程被杀或系统卡死;建议开发环境至少2GB内存,合理配置memory_limit、OPcache及PHP-FPMworker数,并禁用生产环境无关扩展。
-
PHP自动类型转换在松散比较、算术运算、布尔判断等场景触发,如"abc"转0、"5"+"3.2abc"得8.2;常见坑包括"0"为true而0为false、array()==null为true;应优先使用===、主动校验类型、用户输入及时强转并验证。
-
PHP数组在接口返回数据中应以结构清晰、类型明确、可预测的方式组织,避免嵌套过深、键名不统一、空值处理随意等问题,确保前后端协作高效、稳定。统一使用关联数组(key-value),禁用纯数字索引接口返回的数据本质是结构化信息,需通过语义化键名表达含义。即使返回列表,也应包裹在有意义的字段下:✅推荐:["users"=>[{"id"=>1,"name"=>"张三"},{"id"=>2,"name"=>"李四"}]]❌避免:[{"id"=>1,"nam
-
PHP持久登录需用setcookie()设带expires时间戳、path='/'、domain='.example.com'(跨子域)、secure=true(HTTPS)、httponly=true的独立token,禁用延长session有效期;token须哈希存储、轮换更新、设最后使用时间;SameSite需显式配置并HTTPS测试。
-
Calltoundefinedfunction错误需按五步排查:一查disable_functions是否禁用该函数;二验对应扩展是否启用;三核函数拼写、大小写及PHP8.4兼容性;四检Composer自动加载是否生效;五辨命名空间调用是否正确。
-
宝塔面板连不上远程数据库的典型原因是安全组未放行端口或数据库未授权IP访问。需检查云平台安全组规则(开放3306等端口)、数据库用户host权限(如'%')、bind-address配置(应为0.0.0.0),并用telnet/nc验证连通性。
-
高并发下include变慢主因是路径解析、stat()和realpath()调用频繁及OPcache配置不当;应使用绝对路径、禁用不必要的_once、预热关键文件并调优OPcache参数。
-
Git管理小型PHP项目足够:需正确设置仓库根目录(如/var/www/myblog而非htdocs)、用.gitignore排除vendor/、config.php等敏感或生成文件、提交信息用动词开头说明改动与原因、上线前确保远程main与生产环境一致,并养成gitstatus和gitadd-p习惯。
-
PHP调用Thrift服务需启用匹配版本的thrift扩展,IDL须用同版本编译器生成;连接需手动重试、禁用THttpClient;大响应应分页或流式处理;时间戳统一用毫秒级i64并显式命名。
-
PHP通过setcookie()设置Cookie需在输出前调用,读取用$_COOKIE数组,更新即重设同名Cookie,删除需设过期时间为过去值,应启用Secure、HttpOnly、SameSite等安全属性,特殊字符值可用setrawcookie()避免URL编码。