What is the difference between html_entity_decode() and htmlentities() in PHP?

The main difference between html_entity_decode() and htmlentities() in PHP is that html_entity_decode() converts HTML entities to their corresponding characters, while htmlentities() converts characters to their corresponding HTML entities. If you have HTML entities in a string and you want to convert them back to their original characters, you should use html_entity_decode(). If you want to encode characters to HTML entities to prevent XSS attacks or display special characters correctly in HTML, you should use htmlentities().

// Example using html_entity_decode()
$string_with_entities = "<p>Hello, &world&!</p>";
$decoded_string = html_entity_decode($string_with_entities);
echo $decoded_string;

// Example using htmlentities()
$string = "Hello, <script>alert('XSS attack!')</script>";
$encoded_string = htmlentities($string, ENT_QUOTES);
echo $encoded_string;