-
PHP中动态生成PDF常用四种方法:一、TCPDF支持UTF-8和HTML解析;二、Dompdf将HTML/CSS渲染为PDF;三、MPDF专优多语言排版;四、FPDF轻量级手动绘制,需额外配置中文字体。
-
最轻量可控的PHP版本切换方式是用brewunlink+brewlink--force,需先断开旧链接再强制链接目标版本(如php@8.2),并单独重启PHP-FPM服务以确保CLI与Web环境一致。
-
preg_split中星号需转义为'*'或用preg_quote(),否则因正则语法错误失败;纯字符串分割应优先用explode();需limit或flags时才用preg_split,并注意PREG_SPLIT_NO_EMPTY等标志。
-
ZipArchive扩展依赖libzip库,CentOS7等系统自带libzip版本过低(如0.10.x),PHP7.4+要求≥0.11且排除问题版本;需卸载旧包、从libzip.org下载1.9.2源码编译,并通过PKG_CONFIG_PATH或--with-libzip=显式指定路径确保PHPconfigure正确识别。
-
PHP不直接做语音识别,而是调用云API或封装本地模型;快手字幕需轮询维护cursor,阿里/腾讯云ASR需音频预处理,Whisper本地部署需注意权限、超时和音频质量。
-
make:entity默认不自动添加返回类型声明,因需SymfonyMakerBundlev1.40+且PHP8.0+才启用;关联方法缺失源于inversedBy/mappedBy配置错误或目标实体未创建;链式调用需手动将setXxx()返回类型改为self并加return$this;。
-
ApplePay密钥在PHP中应隔离存放于Web根目录外、通过环境变量加载、动态解析带密码的P12、按环境分离密钥并轮换、叠加运行时防护机制。
-
PHP在GoogleCloudFunctions上必须使用PSR-7规范:入口函数需接收ServerRequestInterface并返回ResponseInterface,否则触发500错误;部署须指定--runtimephp82、--trigger-http、--allow-unauthenticated、--source=.和--entry-point=xxx;依赖须提前vendor化,不可由GCP自动安装。
-
CodeIgniter4必须通过Composer安装依赖且依赖composer.json文件;PHP版本需≥8.1、启用intl和mbstring扩展;vendor/autoload.php路径须与FCPATH匹配,否则类无法加载。
-
宝塔面板不能申请独立IP,需先在云厂商控制台绑定弹性公网IP至服务器,再在宝塔网站添加时选择该IP;若未显示,需重启面板或执行bt14刷新缓存。
-
可使用unset()、array_diff_key()、array_filter()、array_merge()组合或foreach遍历五种方式移除PHP数组中指定键值对,分别适用于单删、批量删、条件筛选、索引重置及复杂逻辑场景。
-
简单词用str_replace,模糊匹配、忽略大小写或空格需用preg_replace;预处理应清理空格标点但保留中文和emoji;词库按长度倒序排列并批量替换;注意编码统一为UTF-8并检查输入转义。
-
Laravel中多态多对多不能用morphToMany一步实现嵌套关联,需先多态一对多再各模型单独多对多;morphToMany适用于无共同父类的多模型统一打标场景,中间表需手动添加tag_id及额外字段并设联合唯一索引。
-
phpEnv是两类工具:Windows图形化集成环境(phpenv.cn出品)和类Unix命令行多版本管理器(Git仓库版),二者名称相似但生态、安装及用途完全不兼容。
-
phpEnv默认禁用目录索引,需手动修改Apache虚拟主机配置,在<Directory>块中添加Options+Indexes+FollowSymLinks,确保无IndexIgnore*、路径斜杠正确、权限充足,并彻底重启Apache生效。