First of all, the "hex entities" are the entities with the character represented as Unicode codepoint. All Unicode characters could be represented as entities with the Unicode codepoint; in HTML, some can be represented with just a name, instead.
The list of entities in HTML which have a predefined name is quite long: http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML
If you have a text which in which HTML entities are already converted using the shorthand name, then your only option is to do a search and replace. Needless to say, that can be quite computationally intense. The code would look like:
<?php
$str = 'Hello & world! "';
$find = ['&', '"']; //.. Complete the table with the entire list
$replace = ['&', '"']; // ... Complete this list too
$str = str_replace($find, $replace, $str);
echo $str;
?>
However, this can be very slow.