openxtrem / rtf-html-php
PHP中的RTF转HTML转换器。henck/rtf-html-php的分支,兼容PHP 8.2
3.0.0
2024-06-04 14:44 UTC
Requires
- php: 8.2.* | 8.3.*
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 9.5.*
This package is auto-updated.
Last update: 2024-09-04 19:18:09 UTC
README
PHP中的RTF转HTML转换器
在一个最近的项目中,我急需一个用PHP编写的RTF转HTML转换器。经过一番搜索,找到了一些匹配项,但我无法使它们正常工作。其中之一使用了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安装,它通常已经安装。