php教程技术文章
-
该用PDO。因需多数据库兼容、事务嵌套或未来迁移时PDO是唯一合理选择;其预处理更安全直观,开启异常模式后错误处理更可靠,统一使用可避免安全风险。305 收藏 -
宝塔面板卸载后bt命令仍存在,因/usr/bin/bt软链接未被清除;服务如Nginx、MySQL仍运行是设计使然,并非卸载失败;需手动清理残留定时任务、启动项及明确属于宝塔的路径。305 收藏 -
敏感词过滤不能只用str_replace,因其易误杀(如“青苹果”)、漏杀(缺“苹果”时仅含“苹”“果”不匹配)且性能差(1000词需1000次全量扫描);应采用Trie树实现一次扫描多词匹配。305 收藏 -
PHP不处理CSS渐变方向,仅输出含linear-gradient()的HTML/CSS;方向由CSS的to关键词或角度值(如toright、45deg)控制,需白名单校验用户输入以防XSS,生效依赖浏览器解析与样式优先级。305 收藏 -
PHP8.0+才支持?->空安全操作符,低版本直接报语法错误;它仅对null做短路处理,不适用于空数组、空字符串等,且后必须接方法或属性访问。305 收藏 -
PHP页面响应体积大、传输慢时,应启用Gzip压缩:一、通过php.ini设置zlib.output_compression=On并重启服务器;二、脚本中调用ob_start('ob_gzhandler'),适用于无法修改配置的环境。305 收藏 -
必须同时看到cache_module和cache_disk_module才算真正加载;执行httpd-M|findstrcache(Windows)或./httpd-M|grepcache(macOS/Linux),缺一则缓存无效。305 收藏 -
最稳定方式是直接修改php.ini中session.save_path,需确保路径存在、可写且权限正确;运行时可用ini_set()或session_save_path()设置,但必须在session_start()前调用;高并发下可改用tmpfs提升性能。305 收藏 -
phpEnv中Nginx的access_log必须用绝对路径,如C:/phpEnv/logs/myapp_access.log;log_format须定义在http块顶层;日志轮转需手动或用Windows计划任务+PowerShell;敏感信息必须在log_format中脱敏,禁用$request_body等高危变量。305 收藏 -
PHP8.4不内置WebSocket服务器能力,无法原生实现完整握手与帧解析,必须依赖Workerman等第三方库;Workerman5.x全面支持PHP8.4,纯PHP实现,无需扩展,适合中小项目快速部署。305 收藏 -
短链接还原失败主因是目标平台(如t.cn)拦截非浏览器请求,需设置真实User-Agent等cURL选项;t.cn必须调用微博官方API,不可硬解。305 收藏 -
phpenvversion是唯一能确认当前生效PHP版本的命令,它按shell>local>global>system优先级显示三行配置并标出被选中的版本;php-r"echophpversion();"输出结果才是最终真实运行版本。305 收藏 -
回退PHP版本前应先确认错误根源,排查配置变更、扩展缺失或语法兼容问题;通过php-v、php-m、错误日志、error_reporting和php-l定位问题;推荐多版本共存并切换php-fpm,同步更新php.ini关键配置,重装vendor以适配旧版。305 收藏 -
Xdebug通过分析cachegrind.out.*中PDO::execute等调用的OwnTime和Calls定位慢SQL执行位置,单次耗时>100ms或频繁调用(Calls>100)即可疑;需回溯调用链找到业务方法,再结合慢日志与EXPLAIN分析真实原因。305 收藏 -
read_buffer_size在XAMPP中默认128KB已足够,仅对无索引全表扫描有效;盲目调大易OOM且超2MB无效,应优先优化SQL和索引,必要时用SETSESSION动态设置。305 收藏