正确安装命令是 composer require phpoffice/phpword,它支持 PHP 8+ 且文档更新至 2024 年;旧版 phpword/phpword 或 miloschuman/phpword 已废弃,v1.0.0+ 要求 PHP ≥ 8.0。

PHPWord 不是官方 Composer 包,直接 composer require phpoffice/phpword 会失败——它早已迁移到 phpoffice/phpword 的新组织名,但更关键的是:你装的其实是废弃的旧版镜像,不是当前维护的主仓库。
确认你要用的是哪个 PHPWord
现在实际在维护、有 PHP 8+ 支持、文档更新到 2024 年的是 phpoffice/phpword(注意:没有 phpword 单独命名的包)。网上搜到的 phpword/phpword 或 miloschuman/phpword 都是过时分叉,不建议用。
- ✅ 正确命令:
composer require phpoffice/phpword - ❌ 错误命令:
composer require phpword/phpword(404)或composer require miloschuman/phpword(已多年未更新) - ⚠️ 注意:v1.0.0+ 要求 PHP ≥ 8.0;若项目还在用 PHP 7.4,只能锁死到
v0.18.3,且部分功能(如 DOCX 图片嵌入)不稳定
require 后没生成 Word?检查 autoloader 和命名空间
装完只是把代码拉进 vendor/,不写对类名和 use 语句,new \PhpOffice\PhpWord\PhpWord() 会报 Class not found。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须加
use PhpOffice\PhpWord\PhpWord;,不能省略PhpOffice\前缀 - 别手抖写成
use PhpWord\PhpWord;(旧版遗留写法,新版无效) - 确保已执行过
composer dump-autoload(一般 install/requires 后自动触发,但手动运行一次不亏) - 示例最小可用片段:
use PhpOffice\PhpWord\PhpWord; $phpWord = new PhpWord(); $section = $phpWord->addSection(); $section->addText('Hello World'); $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007'); $objWriter->save('hello.docx');
中文乱码、样式丢失?重点看字体和保存方式
PHPWord 默认不嵌入中文字体,也不自动设 lang,导致 Word 打开显示方块或格式错乱。
立即学习“PHP免费学习笔记(深入)”;
- 中文文本必须显式指定字体:
$section->addText('你好', ['font' => 'SimSun', 'size' => 24]); - 推荐用
Word2007格式(即 .docx),不要用Word2003(.doc)——后者对 UTF-8 和样式支持极差 - 保存路径需有写权限;若用
$objWriter->save('php://output'),记得加header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); - 如果导出后打开提示“文件已损坏”,大概率是输出前有空格/换行被 echo 出来,检查
echo、print或 BOM 字节
真正卡住人的地方,往往不是不会写 addText(),而是没意识到 PHPWord 对中文默认零支持、不处理字体 fallback、也不校验输出缓冲——这些细节不提前堵住,调试起来比重写还费时间。


















