barbosaadriano/rtf-html-php

PHP中的RTF转HTML转换器

v1.1.2 2024-05-29 10:26 UTC

This package is auto-updated.

Last update: 2024-09-18 07:56:34 UTC


README

PHP中的RTF转HTML转换器

在最近的一个项目中,我急需一个用PHP编写的RTF转HTML转换器。在Google上搜索了一些结果,但我无法使其正常工作。其中有一个使用了passthru()调用RTF2HTML可执行文件,这并不是我所希望的。我正在寻找一个完全用PHP编写的RTF转HTML转换器。

由于找不到现成的东西,我坐下来自己编写了一个。它很短,而且它确实工作,实现了在HTML中需要的RTF标签子集,并忽略了其他部分。实际上,当你真正看RTF格式时,它并不复杂,但也不是你15分钟内就能编出一个解析器的。

如何使用它

使用composer安装此包。然后执行以下操作:

use RtfHtmlPhp\Document;

$rtf = file_get_contents("test.rtf"); 
$document = new Document($rtf); // or use a string directly

Document 如果RTF文档无法解析,将抛出异常。解析错误将生成PHP通知。

如果您想查看解析器读取的内容(用于调试目的),则调用此方法:

echo $document;

要将解析器的解析树转换为HTML,调用此方法(但仅当RTF已成功解析时):

use RtfHtmlPhp\Html\HtmlFormatter;
$formatter = new HtmlFormatter();
echo $formatter->Format($document);

为了提高兼容性,转换后RTF Unicode字符的默认字符编码设置为HTML-ENTITIES。要更改默认编码,您可以使用mb_list_encodings()支持的编码初始化Html对象:例如UTF-8

$formatter = new HtmlFormatter('UTF-8');

通过Composer安装

composer require henck/rtf-to-html

注意事项

  • 请注意,rtf-html-php要求您的PHP安装支持mb_convert_encoding函数。因此,您必须安装php-mbstring模块。对于新的PHP安装,通常已经安装了该模块。