PHP无法原生解析RTF,需通过转换实现:推荐方案一是用unrtf等命令行工具转为文本/HTML后清洗;方案二是Windows下调用COM+Word精准提取;不推荐纯PHP库因缺乏成熟维护;最佳实践是规避RTF,改用DOCX或结构化数据。
PHP 本身不内置 RTF 解析能力,也没有官方扩展直接读取 RTF 内容。实际项目中,读取 RTF 文件主要靠“转换”而非“原生解析”,核心思路是把 RTF 转成可处

这是最轻量、兼容性好、无需复杂依赖的方式,适合 Linux/Unix 环境:
sudo apt install unrtf,它默认输出 HTML)或 unrtf(支持 --text 输出纯文本)shell_exec() 调用转换命令,例如:$text = shell_exec('unrtf --text ' . escapeshellarg($tmp_path) . ' 2>/dev/null');
trim(preg_replace('/\s+/', ' ', $text)) 简单清洗利用本地 Microsoft Word 引擎精准提取内容,适合对格式还原要求不高、但需要高准确率的场景:
extension=php_com_dotnet.dll)$word = new COM('Word.Application');
$doc = $word->Documents->Open($rtfPath, false, true);
$text = $doc->Content->Text;
$doc->Close(false); $word->Quit();目前没有成熟、持续维护、能稳定处理复杂 RTF(含表格、嵌套样式、中文编码)的纯 PHP 解析库:
RTFParser 类多为半成品,不支持 Unicode 或会崩溃于真实文档e1xydGY...)不可靠——RTF 不是标准 Base64,而是自定义十六进制转义,解析极易出错如果控制文件来源,建议前端或上传环节就规避 RTF:
file_get_contents 直接读)convert=true,由 Google 后端转为 Google Doc,再用 Docs API 读取正文