The ability to encode and decode a certain set of characters called 'Html Entities' has existed since PHP4. Amongst the vast number of functions built into PHP, there are 4 nearly identical functions that are used to encode and decode html entities; despite their similarities, however, 2 of them do provide additional capabilities not available to the others.
| Encoding Functions | Decoding Functions |
| htmlentities¹ | html_entity_decode¹ |
| htmlspecialchars² | htmlspecialchars_decode² |
__¹__ htmlentities and html_entity_decode can only encode and decode characters within PHP's HTML translations table.
__²__ htmlspecialchars and htmlspecialchars_decode can only encode and decode special characters³.
__³__ special characters are not interpreted as HTML tags and 8-bit characters are encoded as ASCII characters only.
What Sets This Apart
What sets this class apart from the rest is that this class, in addition to being able to encode and decode all of the same characters/entities that can be encoded and decoded by PHP's htmlentities() and html_entity_decode() functions, it can also encode and decode a very large number of characters/entities which PHP's built-in htmlentities encoding and decoding functions won't encode/decode, due to their lack of special meaning in HTML, like:
- punctuation characters;
- ASCII characters;
- Greek characters;
- Latin characters;
- Russian characters;
- Arithmetic characters;
- and tons more...
Installation (via Composer)
composer require gavinggordon/htmlentities
include_once( __DIR__ . '/vendor/autoload.php' );
$htmlentities = new \GGG\HtmlEntities();
$to_encode = 'Test-,;:';
// Set a variable containing a string of the encoded characters you wish to be encoded;
$encoded = $htmlentities->encode( $to_encode );
// Get the encoded result by using the encode method on the returned instance of HtmlEntities;
// Display the encoded result, which is of type String;
$to_decode = 'Test&tilde;&ast;&lpar;&num;';
// Set a variable containing a string of the encoded characters you wish to be decoded;
$decoded = $htmlentities->decode( $to_decode );
// Get the decoded result by using the decode method on the returned instance of HtmlEntities;
// Display the decoded result, which is of type String;
Check out our CodeClimate stats by clicking here.
PHP Innovation Award
This class has been awarded a PHP Innovation Award, provided by PHPClasses.org. My other PHP classes are accessible online via my GitHub profile or PHPClasses.org profile.