-
number_format返回字符串,不可直接用于计算;应先round控制精度,再sprintf格式化,跨语言交互时优先用字符串+Decimal避免浮点误差。
-
不会直接报TypeError,但firebase/php-jwtv6.x不支持PHP8.5(最高兼容8.3),需升级到v7.x(支持PHP8.4+);确认真实PHP版本用php-v,安装命令为composerrequirefirebase/php-jwt:^7.0。
-
跨域返回JSON时必须同时设置Content-Type为application/json且含charset=utf-8、CORS响应头(如Access-Control-Allow-Origin),并确保JSON格式正确、无输出缓冲干扰。
-
最稳方案是优先使用宝塔内置「IP访问限制」功能:进入「安全→IP访问限制」,添加IP或CIDR网段并勾选「仅允许白名单IP访问」,确保右上角提示“已开启”;若需firewalld,须按“放行白名单→拒绝所有”顺序配置持久化规则并重载。
-
fsockopen并非真正异步,而是通过发完即关连接模拟异步;关键是在fwrite后立即fclose,不读响应,并手动写完整HTTP请求(含Connection:close和准确Content-Length)。
-
PHP源码可跨架构编译,但需匹配目标平台的编译工具链、glibc/musl版本、内核POSIX支持及扩展依赖;龙芯需LoongArch工具链,飞腾/鲲鹏需注意ARM64硬件加速兼容性,麒麟/UOS存在符号导出差异与seccomp限制。
-
PHP中二维数组的行数可通过count($data)直接获取,它返回第一维度元素个数;若含深层嵌套可用count($data,COUNT_RECURSIVE)辅助验证;关联键数组仍适用count(array_keys($data));foreach手动计数则适合边处理边统计场景。
-
页面显示旧内容是因缓存未清除,可通过四种方式自动清理:一、WebHook脚本调用宝塔命令清OPcache/Redis/静态缓存;二、计划任务配合PHP触发器提升安全性;三、Nginxfastcgi_cache_purge模块主动失效缓存;四、调用Laravel/ThinkPHP原生命令清框架缓存。
-
strlen()按字节计数,UTF-8下中文标点返回3;mb_strlen()按字符计数,需显式指定'UTF-8'编码,统一将中英文标点、汉字等均计为1字符。
-
全角转半角本质是Unicode字符映射,仅数字、英文字母及部分标点有标准半角对应;中文汉字、标点等无半角形式,强行转换会丢数据;安全做法是手写一一对应的全半角映射表并用str_replace批量替换。
-
PHPmkdir()权限不生效主因是未重置umask且父目录无写权限;需umask(0)后mkdir($path,0755,true),再还原umask,并用realpath()规范路径、按年月分目录、同步调大upload_max_filesize和post_max_size。
-
PHP7.4+应弃用com_create_guid(),因其仅限Windows、依赖禁用的COM扩展、格式不合规;推荐用random_bytes()手动构造RFC4122v4UUID,或按需选用ramsey/uuid库。
-
二分查找是在已排序数组中快速定位目标值的算法,时间复杂度O(logn);核心前提是数组必须升序或降序排列,无序时需先排序但通常不划算。
-
PHP配置更新必须读取→修改→写入三步完成,需处理格式、转义、权限和并发;str_replace仅适用于无结构纯文本,INI用parse_ini_file+自定义write_ini_file,JSON必须json_decode/json_encode,生产环境推荐原子切换+重载。
-
直接用str_replace或正则过滤敏感词会翻车,因匹配效率低、无法处理词根变形、易漏匹配(如“草泥马”与“草*泥马”)、误伤正常文本(如“南京东路”),且敏感词库超500条时preg_replace性能断崖下跌;真正可靠的方案是前缀树(Trie),时间复杂度从O(n×m)降至O(m),推荐使用overtrue/php-trie包,注意初始化复用、编码统一(转UTF-8)、用searchAll()获取位置信息,并按end降序替换或拼接以避免偏移。