A PHP class which allows the decoding and encoding of a wider variety of characters compared to the standard htmlentities and html_entity_decode functions.
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 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 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...
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; echo $encoded; // Display the encoded result, which is of type String; // Test&hyphen;&comma;&semi;&colon;
$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; echo $decoded; // Display the decoded result, which is of type String; // Test~*(#