bicpi's HtmlConverter library
HtmlConverter is a PHP library that provides easy HTML-to-Text conversion. This is useful, for example, for
automatically creating plain text parts of HTML emails., (*1)
, (*2)
Usage
- Create converter
- Call
->convert($html)
method
- Enjoy returned plain text
SimpleConverter
The SimpleConverter
works on every PHP enabled system by using PHP's strip_tags()
function and putting some HTML
entity decoding on top., (*3)
<?php
use bicpi\HtmlConverter\Converter\SimpleConverter;
$html = '...
... you HTML content ...
...';
$converter = new SimpleConverter();
$plain = $converter->convert($html);
LynxConverter
The LynxConverter
works on every system with the lynx
text browser package installed. The converted plain text
is equivalent to what you would see when opening the HTML in lynx
. This is currently the most useful converter as
it provides the best results and includes all links as references., (*4)
<?php
use bicpi\HtmlConverter\Converter\LynxConverter;
$html = '...
... you HTML content ...
...';
$converter = new LynxConverter();
$plain = $converter->convert($html);
Html2TextConverter
The Html2TextConverter
works on every system with the html2text
package installed. The converted plain text
is equivalent to what you would see when passing the HTML on the command line to the html2text
command. The result
is quite nice but be aware that links will be removed. Hence, this should not be used for converting a whole web page
or marketing email. May be useful for small chunks of HTML code., (*5)
<?php
use bicpi\HtmlConverter\Converter\Html2TextConverter;
$html = '...
... you HTML content ...
...';
$converter = new Html2TextConverter();
$plain = $converter->convert($html);
ChainConverter
The ChainConverter
offers converter chaining so that the first appropriate converter will handle the conversion., (*6)
<?php
use bicpi\HtmlConverter\Converter\ChainConverter;
use bicpi\HtmlConverter\Converter\LynxConverter;
use bicpi\HtmlConverter\Converter\SimpleConverter;
$html = '...
... you HTML content ...
...';
$converter = new ChainConverter();
$converter->addConverter(new LynxConverter());
$converter->addConverter(new SimpleConverter());
$plain = $converter->convert($html);
In the above example the conversion will be handled by the LynxConverter
- provided that the lynx
package is
available. If not, the SimpleConverter
will be used as a fallback. This for instance would be useful when deploying
to a machine without lynx
installed but a development machine without the package - e.g. Windows., (*7)
Running unit tests
To setup and run tests follow these steps:, (*8)
- Go to the root directory of this library
- Run:
composer install
- Run:
./vendor/bin/phpunit