Htmlentities in php not working

In this article, we will see what htmlentities() & htmlspecialchars() Function is used for & also understand their implementation through the examples.

htmlentities() Function: The htmlentities() function is an inbuilt function in PHP that is used to transform all characters which are applicable to HTML entities. This function converts all characters that are applicable to HTML entities. 

Syntax:

string htmlentities( $string, $flags, $encoding, $double_encode )

Parameters value: This function accepts four parameters as mentioned above and described below: 

  • $string: This parameter is used to hold the input string.
  • $flags: This parameter is used to hold the flags. It is a combination of one or two flags, which tells how to handle quotes.
  • $encoding: It is an optional argument that specifies the encoding which is used when characters are converted. If encoding is not given then it is converted according to the PHP default version.
  • $double_encode: If double_encode is turned off then PHP will not encode existing HTML entities. The default is to convert everything.

Return Values: This function returns the string which has been encoded. 

Example: This example uses the htmlentities() function to transform all characters which are applicable to HTML entities.

PHP

Output:

<a href="https://www.geeksforgeeks.org">GeeksforGeeks</a>

htmlspecialchars() Function: The htmlspecialchars() function is an inbuilt function in PHP which is used to convert all predefined characters to HTML entities. 

Syntax:

string htmlspecialchars( $string, $flags, $encoding, $double_encode )

Parameter value:

  • $string: This parameter is used to hold the input string.
  • $flags: This parameter is used to hold the flags. It is a combination of one or two flags, which tells how to handle quotes.
  • $encoding: It is an optional argument that specifies the encoding which is used when characters are converted. If encoding is not given then it is converted according to the PHP default version.
  • $double_encode: If double_encode is turned off then PHP will not encode existing HTML entities. The default is to convert everything.

Return Values: This function returns the converted string. If there is an invalid input string then an empty string will be returned. 

Example: This example uses the htmlspecialchars() function to convert all predefined characters to HTML entities. 

PHP

<?php

  $str = '"geeksforgeeks.org" Go to GeeksforGeeks';

  echo htmlspecialchars($str, ENT_QUOTES);

?>

Output:

"geeksforgeeks.org" Go to GeeksforGeeks

Difference between htmlentities() and htmlspecialchars() function: The only difference between these function is that htmlspecialchars() function convert the special characters to HTML entities whereas htmlentities() function convert all applicable characters to HTML entities.


❮ PHP String Reference

Example

Convert the predefined HTML entities "&lt;" (less than) and "&gt;" (greater than) to characters:

<?php
$str = "This is some &lt;b&gt;bold&lt;/b&gt; text.";
echo htmlspecialchars_decode($str);
?>

The HTML output of the code above will be (View Source):

<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>

The browser output of the code above will be:

This is some bold text.



Definition and Usage

The htmlspecialchars_decode() function converts some predefined HTML entities to characters.

HTML entities that will be decoded are:

  • &amp; becomes & (ampersand)
  • &quot; becomes " (double quote)
  • &#039; becomes ' (single quote)
  • &lt; becomes < (less than)
  • &gt; becomes > (greater than)

The htmlspecialchars_decode() function is the opposite of htmlspecialchars().


Syntax

htmlspecialchars_decode(string,flags)

Parameter Values

ParameterDescription
string Required. Specifies the string to decode
flags Optional. Specifies how to handle quotes and which document type to use.

The available quote styles are:

  • ENT_COMPAT - Default. Decodes only double quotes
  • ENT_QUOTES - Decodes double and single quotes
  • ENT_NOQUOTES - Does not decode any quotes

Additional flags for specifying the used doctype:

  • ENT_HTML401 - Default. Handle code as HTML 4.01
  • ENT_HTML5 - Handle code as HTML 5
  • ENT_XML1 - Handle code as XML 1
  • ENT_XHTML - Handle code as XHTML


Technical Details

Return Value:Returns the converted string
PHP Version:5.1.0+
Changelog:PHP 5.4 - Added ENT_HTML401, ENT_HTML5, ENT_XML1 and ENT_XHTML.

More Examples

Example

Convert some predefined HTML entities to characters:

<?php
$str = "Jane &amp; &#039;Tarzan&#039;";
echo htmlspecialchars_decode($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars_decode($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars_decode($str, ENT_NOQUOTES); // Does not convert any quotes
?>

The HTML output of the code above will be (View Source):

<!DOCTYPE html>
<html>
<body>
Jane & &#039;Tarzan&#039;<br>
Jane & 'Tarzan'<br>
Jane & &#039;Tarzan&#039;
</body>
</html>

The browser output of the code above will be:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'


Example

Convert the predefined HTML entities to double quotes:

<?php
$str = 'I love &quot;PHP&quot;.';
echo htmlspecialchars_decode($str, ENT_QUOTES); // Converts double and single quotes
?>

The HTML output of the code above will be (View Source):

<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>

The browser output of the code above will be:

I love "PHP".



❮ PHP String Reference


What is HTML entities () function?

htmlentities() Function: The htmlentities() function is an inbuilt function in PHP that is used to transform all characters which are applicable to HTML entities. This function converts all characters that are applicable to HTML entities. Syntax: string htmlentities( $string, $flags, $encoding, $double_encode )

What is HTML entities function in PHP?

The htmlentities() function converts characters to HTML entities. Tip: To convert HTML entities back to characters, use the html_entity_decode() function. Tip: Use the get_html_translation_table() function to return the translation table used by htmlentities().

How do I allow special characters in PHP?

Tip: To convert special HTML entities back to characters, use the htmlspecialchars_decode() function..
& (ampersand) becomes &amp;.
" (double quote) becomes &quot;.
' (single quote) becomes &#039;.
< (less than) becomes &lt;.
> (greater than) becomes &gt;.

What is the difference between HTML entities and Htmlspecialchars in PHP?

The only difference between htmlspecialchars() and htmlentities() function is that htmlspecialchars() function converts the special characters to HTML entities, whereas htmlentities() function converts all the applicable characters to html entities.