-
htmlspecialchars()仅防HTML上下文XSS,对JavaScript、属性、JSON等场景无效;预处理语句无法参数化表名/排序字段,需白名单校验;RFI源于allow_url_include=On+用户路径拼接;会话安全需HttpOnly、Secure、UA/IP绑定等全配置。
-
必须显式设置connectTimeout和readTimeout参数,因php.ini配置在PHP8.0+及Swoole中常不生效,而connect()/pconnect()的参数直控socket层、优先级更高、行为确定;顺序错误或设为0会导致无限等待阻塞进程。
-
Webman需自行集成WebSocket+OT/CRDT实现协同编辑:启用独立WebSocketWorker、分层Redis存储(snapshot/oplog/cursor)、IME输入延迟至compositionend提交、断连后基于last_seq重放oplog。
-
PHP8.5彻底移除了Directory类,应改用FilesystemIterator替代,它功能明确、兼容性好、默认跳过.和..,支持过滤与递归;glob()仅适用于简单通配匹配。
-
Eloquent没有内置的属性锁机制,所谓“属性锁”是开发者用数据库行锁或应用层标记模拟的并发控制。真正起作用的是InnoDB行级锁或原子操作如increment(),以及CAS式状态校验更新。
-
能,$this->xxx()可直接调用,但方法必须在宿主类或其父类中存在;Trait不继承上下文,$this指向宿主类实例;需确保服务已注入并判空,推荐依赖注入+接口约束,避免硬编码和重复初始化。
-
PHP消费者处理大字段消息内存爆掉,应跳过自动解码、超阈值写入临时文件再解析,禁用预取限制并配合手动ACK与超时控制,必要时采用惰性队列或Redis分片重组。
-
preg_split中星号需转义为'*'或用preg_quote(),否则因正则语法错误失败;纯字符串分割应优先用explode();需limit或flags时才用preg_split,并注意PREG_SPLIT_NO_EMPTY等标志。
-
最轻量可控的PHP版本切换方式是用brewunlink+brewlink--force,需先断开旧链接再强制链接目标版本(如php@8.2),并单独重启PHP-FPM服务以确保CLI与Web环境一致。
-
Webman默认不支持SQLite,需手动启用PHP的pdo_sqlite和sqlite3扩展,并在config/database.php中配置绝对路径的database文件,确保runtime目录可写,否则报错Driver[sqlite]notsupported。
-
Eloquent初始化必须在onWorkerStart中执行一次并禁用持久连接,模型需显式声明$connection,时间戳与主键须严格匹配表结构,composer安装需加-W参数且重启服务。
-
Apache通过mod_rewrite模块在.htaccess中重写URL,将非静态资源请求统一转发至index.php并传递路径参数;PHP则解析$_GET['url']实现路由分发,需过滤输入且注意服务器配置与循环重写问题。
-
XAMPP需手动启用PHPexif扩展:取消php.ini中extension=exif前的分号并重启Apache;exif_read_data()失败常见原因包括路径权限、非JPEG/TIFF格式、无EXIF数据或WebP不支持;中文乱码需用mb_convert_encoding处理,WebP建议改用Imagick或exiftool。
-
Hyperf在PHP8.1+协程下Excel导入的核心难点是PhpSpreadsheet的同步IO阻塞协程调度,需禁用opcache.enable_cli、排除SWOOLE_HOOK_FILE、流式读取、手动GC及优先使用CSV。
-
本文介绍利用PostgreSQL的libpq连接字符串原生支持多主机故障转移的机制,使PHP应用无需轮询或手动状态管理即可实现主库不可用时自动降级至从库,并在主库恢复后自动回切(依赖客户端重连策略)。本文介绍利用PostgreSQL的libpq连接字符串原生支持多主机故障转移的机制,使PHP应用无需轮询或手动状态管理即可实现主库不可用时自动降级至从库,并在主库恢复后自动回切(依赖客户端重连策略)。PostgreSQL自10版本