-
Laravel、Symfony、CodeIgniter和ThinkPHP是主流PHP框架。Laravel通过Composer创建项目,使用Artisan命令生成控制器并配置路由;Symfony利用CLI工具初始化应用,结合Doctrine管理数据库;CodeIgniter以轻量著称,解压后配置baseURL即可访问控制器;ThinkPHP通过Composer安装,支持智能路由与调试模式设置,适用于快速开发Web应用。
-
Session默认支持直接存储整型,无需转字符串;PHP自动序列化并保持类型,读取时仍为integer,常见错误是手动转字符串导致后续类型判断或函数调用失败。
-
可通过分段显示、参数精简、CSS隐藏、JSON导出及CLI工具五种方式优化phpinfo()可读性:一用output_buffering截取模块;二传位掩码如INFO_CONFIGURATION限制输出;三注入CSS隐藏非必要区块;四转JSON前端分页渲染;五用grep/less命令行分段浏览。
-
PHP本地缓存通过减少数据库查询和重复计算提升性能,常见方式包括:1.文件缓存,将数据序列化存储于本地文件,适合中小型项目;2.APCu内存缓存,用于频繁读取的变量数据,读写高效;3.OPcache缓存PHP字节码,避免重复编译,提升脚本执行速度;4.结合浏览器缓存,通过设置Cache-Control、Expires等HTTP头减少静态资源请求。合理组合使用可显著提高应用响应速度与用户体验。
-
在PHP8+中,@抑制符不再使error_reporting()返回0,而是保留原始报告级别,仅屏蔽错误输出;因此需通过error_reporting()&$errno显式判断错误是否被抑制,才能安全过滤日志。
-
ceil()会把负数也往上“进”?ceil()不是“四舍五入到整数”,也不是“绝对值向上取整”,而是向正无穷方向取整。这意味着-1.2经过ceil()变成-1,不是-2——它真正在意的是数轴上的位置:只要没到下一个更大的整数,就卡在当前整数上。常见错误现象:ceil(-3.9)返回-3,有人误以为该得-4,结果逻辑出错。使用场景:计算分页总页数、分配最小资源单元(比如至少要开1个进程,哪怕算出来是0.1)注意:如果输入是字符串(如"5.7"),PHP会先隐式转为flo
-
最稳妥方式是用glob()匹配再逐个校验filemtime(),优先提取文件名时间戳;需处理符号链接、权限、opcachestat缓存、非递归限制;删除前检查可写性,CLI执行并加锁防重入,避免与OPcache混淆。
-
PHP时间日期函数包括:一、time()获取当前Unix时间戳;二、date()按格式字符串格式化时间;三、getdate()返回时间关联数组;四、strtotime()解析日期字符串为时间戳;五、date_default_timezone_set()设置时区。
-
定位PHP数据库查询问题需启用MySQL日志、禁用PDO预处理模拟、用Xdebug追踪ORM链路、调用mysqli_info()验证执行、在Laravel中启用DB::enableQueryLog()。
-
首先确认加密类型,再选择对应解密方法。若为Base64+gzinflate混淆,可通过在线工具或本地PHP脚本解码,推荐使用本地环境以避免代码泄露风险。
-
is_writable()不能直接判断文件是否可删除,它只检测文件自身可写性或所在目录可写性,而删除操作实际依赖父目录的写权限和执行权限。
-
PHP里用sqrt()和pow()算平面上两点距离直接用勾股定理就行,不是非得调地理坐标函数。平面直角坐标系下,两点(x1,y1)和(x2,y2)的距离公式是sqrt(pow($x2-$x1,2)+pow($y2-$y1,2))。常见错误是漏掉括号导致运算优先级出错,比如写成sqrt(pow($x2-$x1,2)+pow($y2-$y1,2)(少一个右括号),或者误用abs()替代平方——那算出来是曼哈顿距离,不是欧氏距离。推荐写法:$distance
-
最稳妥的是用$_SERVER['HTTP_HOST'],但需过滤校验;$_SERVER['SERVER_NAME']由服务器配置决定,多站点下恒为配置值,导致子站误用主站配置、资源路径错误、跳转异常。
-
PHP调用听书插件收藏功能必须由服务端鉴权调用,禁止前端JS直连;需维护本地user_bookmarks表实现幂等与状态同步,并容错解析插件不统一的JSON响应。
-
PHP无原生定长数组,可通过array_pad填充、array_fill初始化、SplFixedArray类(真正定长)或封装校验函数四种方式模拟,其中SplFixedArray禁止动态扩容且效率更高。