voku/html2text

仅是 html2text 的分支 -> 将 HTML 转换为格式化的纯文本


README

Build Status Coverage Status Codacy Badge Latest Stable Version Total Downloads License Donate to this project using Paypal Donate to this project using Patreon

📝 Html2Text

描述

将 HTML 转换为格式化的纯文本,例如用于文本邮件。

安装

推荐的安装方式是通过 Composer

$ composer require voku/html2text

基本用法

$html = new \voku\Html2Text\Html2Text('Hello, &quot;<b>world</b>&quot;');

echo $html->getText();  // Hello, "WORLD"

扩展用法

每个元素(h1、li、div 等)都可以有如下选项

  • 'case' => 转换大小写 (Html2Text::OPTION_NONE, Html2Text::OPTION_UPPERCASE, Html2Text::OPTION_LOWERCASE, Html2Text::OPTION_UCFIRST, Html2Text::OPTION_TITLE)
  • 'prepend' => 预置字符串
  • 'append' => 添加字符串

例如

$html = '<h1>Should have "AAA" changed to BBB</h1><ul><li>• Custom bullet should be removed</li></ul><img alt="The Linux Tux" src="tux.png" />';
$expected = 'SHOULD HAVE "BBB" CHANGED TO BBB' . "\n\n" . '- Custom bullet should be removed |' . "\n\n" . '[IMAGE]: "The Linux Tux"';

$html2text = new Html2Text(
    $html,
    array(
        'width'    => 0,
        'elements' => array(
            'h1' => array(
              'case' => Html2Text::OPTION_UPPERCASE, 
              'replace' => array('AAA', 'BBB')),
            'li' => array(
              'case' => Html2Text::OPTION_NONE, 
              'replace' => array('', ''), 
              'prepend' => "- ",
              'append' => " |",
            ),
        ),
    )
);

$html2text->setPrefixForImages('[IMAGE]: ');
$html2text->setPrefixForLinks('[LINKS]: ');
$html2text->getText(); // === $expected

在线演示

历史

这个库最初出现在 Jon Abernathy 的博客上 http://www.chuggnutt.com/html2text

一些项目开始使用这个库 - 其中包括 RoundCube 邮件。他们根据他们的网络邮件客户端对其进行了一些更新。

现在这是原始 Html2Text 的扩展分支。

支持

有关支持和支持请访问 Github | 问题 | PayPal | Patreon

有关状态更新和发布公告,请访问 发布 | Twitter | Patreon

如需专业支持,请联系

感谢

  • 感谢 GitHub(Microsoft)托管代码和良好的基础设施,包括问题管理等。
  • 感谢 IntelliJ,因为他们是 PHP 最好的 IDE 的制造商,他们给了我 PhpStorm 的开源许可!
  • 感谢 Travis CI,因为它是最好的、最容易的持续集成工具!
  • 感谢 StyleCI,它提供了简单但强大的代码风格检查。
  • 感谢 PHPStanPsalm,它们提供了真正出色的静态分析工具,并在代码中发现了错误!