In this article, you will learn how to convert plain characters into HTML entities. The htmlentities() function convert characters into HTML entities.
Note: To perform the reverse operation (HTML entities back to characters), you can use html_entity_decode() function.
htmlentities() function uses translation table. To get the translation table, you can use get_html_tranlsation_table() function.
What is the syntax of the htmlentities() function in php?
htmlentities(string,flags,character-set,double_encode)
Parameter | Description |
---|---|
string | The string to convert to HTML elements – Required |
flags | Optional. Specifies how to handle quotes, invalid encoding and the used document type.The available quote styles are:ENT_COMPAT – Default. Encodes only double quotesENT_QUOTES – Encodes double and single quotesENT_NOQUOTES – Does not encode any quotesInvalid encoding:ENT_IGNORE – Ignores invalid encoding instead of having the function return an empty string. Should be avoided, as it may have security implications.ENT_SUBSTITUTE – Replaces invalid encoding for a specified character set with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; instead of returning an empty string.ENT_DISALLOWED – Replaces code points that are invalid in the specified doctype with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD;Additional flags for specifying the used doctype:ENT_HTML401 – Default. Handle code as HTML 4.01ENT_HTML5 – Handle code as HTML 5ENT_XML1 – Handle code as XML 1ENT_XHTML – Handle code as XHTML |
character-set | Optional. A string that specifies which character-set to use.Allowed values are:UTF-8 – Default. ASCII compatible multi-byte 8-bit UnicodeISO-8859-1 – Western EuropeanISO-8859-15 – Western European (adds the Euro sign + French and Finnish letters missing in ISO-8859-1)cp866 – DOS-specific Cyrillic charsetcp1251 – Windows-specific Cyrillic charsetcp1252 – Windows specific charset for Western EuropeanKOI8-R – RussianBIG5 – Traditional Chinese, mainly used in TaiwanGB2312 – Simplified Chinese, national standard character setBIG5-HKSCS – Big5 with Hong Kong extensionsShift_JIS – JapaneseEUC-JP – JapaneseMacRoman – Character-set that was used by Mac OSNote: Unrecognized character-sets will be ignored and replaced by ISO-8859-1 in versions prior to PHP 5.4. As of PHP 5.4, it will be ignored an replaced by UTF-8. |
double_encode | Optional. A boolean value that specifies whether to encode existing html entities or not.TRUE – Default. Will convert everythingFALSE – Will not encode existing html entities |
exaples of the htmlentities function
Example 1. In this example, we initialize a string with some HTML entity and then pass it to the htmlentities() method to convert them into HTML elements.
<?php
$string = '<a href="https://www.php.org">Go to php.org</a>';
echo htmlentities($str);
?>
Example 2. In this example, we declare some strings and tried converting them to HTML elements by using different constants/flags. Run the following example to check the difference between outputs.
<?php
$str = "Some scientist said: 'E=MC²'";
echo htmlentities($str, ENT_COMPAT); // It will convert only double quotes
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // It will convert both single and double quotes
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // It will not convert the quotes
?>
Example 3. This is another example of characters to HTML entities converter using Western European character set. It convert double quotes (not single quotes) and uses the character-set Western European
<?php
$str = "I am Øyvind Åsane. I'm Pakistani.";
echo htmlentities($str, ENT_QUOTES, "UTF-8");
?>