voku / html2text
Only a Fork of -> html2text: Converts HTML to formatted plain text
Installs: 304 233
Dependents: 1
Suggesters: 0
Security: 0
Stars: 37
Watchers: 8
Forks: 176
Open Issues: 4
Requires
- php: >=7.0.0
- voku/portable-utf8: ~5.4
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0
- dev-master
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.0
- 3.4.12
- 3.4.11
- 3.4.10
- 3.4.9
- 3.4.8
- 3.4.7
- 3.4.6
- 3.4.5
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.20
- 3.1.19
- 3.1.18
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.0.1
- 2.0.0
- 1.0.1
- 1.0.0
- dev-dependabot/add-v2-config-file
- dev-whitesource/configure
- dev-analysis-q5090j
- dev-analysis-qg0Ekk
- dev-analysis-8nekBA
- dev-features/rc-formatting
This package is auto-updated.
Last update: 2024-12-04 03:01:29 UTC
README
📝 Html2Text
Description
Convert HTML to formatted plain text, e.g. for text mails.
Installation
The recommended installation way is through Composer.
$ composer require voku/html2text
Basic Usage
$html = new \voku\Html2Text\Html2Text('Hello, "<b>world</b>"'); echo $html->getText(); // Hello, "WORLD"
Extended Usage
Each element (h1, li, div, etc) can have the following options:
- 'case' => convert case (
Html2Text::OPTION_NONE, Html2Text::OPTION_UPPERCASE, Html2Text::OPTION_LOWERCASE , Html2Text::OPTION_UCFIRST, Html2Text::OPTION_TITLE
) - 'prepend' => prepend a string
- 'append' => append a string
For example:
$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
Live Demo
History
This library started life on the blog of Jon Abernathy http://www.chuggnutt.com/html2text
A number of projects picked up the library and started using it - among those was RoundCube mail. They made a number of updates to it over time to suit their webmail client.
Now this is a extend fork of the original Html2Text.
Support
For support and donations please visit Github | Issues | PayPal | Patreon.
For status updates and release announcements please visit Releases | Twitter | Patreon.
For professional support please contact me.
Thanks
- Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
- Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
- Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
- Thanks to StyleCI for the simple but powerfull code style check.
- Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!