Συνάρτηση html_entity_decode() PHP

Παράδειγμα

Convert HTML entities to characters:

<?php
$str = "<© W3Sçh°°¦§>";
echo html_entity_decode($str);
?>

Η HTML έξοδος του παραπάνω κώδικα είναι η εξής (δείτε τον κώδικα πηγής):

<!DOCTYPE html>
<html>
<body>
<? W3S?h????>
</body>
</html>

Browser output of the above code:

<? W3S?h????>

Ορισμός και χρήση

Η συνάρτηση html_entity_decode() μετατρέπει τις HTML ενότητες σε χαρακτήρες.

Η συνάρτηση html_entity_decode() είναι htmlentities() Αντίθετη λειτουργία της htmlentities().

Γραμματική

html_entity_decode(string,flags,character-set)
Παράμετρος Περιγραφή
string Απαιτείται. Καθορίζει την αλφαβήτητα που πρέπει να αποκωδικοποιηθεί.
flags

Προαιρετικό. Καθορίζει πώς θα χειριστούν τα εισαγωγικά και ποιον τύπο εγγράφου θα χρησιμοποιήσουν.

Διαθέσιμες τύποι εισαγωγικών:

  • ENT_COMPAT - Προεπιλεγμένο. Αποκωδικοποιεί μόνο τις διπλές εισαγωγικές και εξαγωγικές οντότητες.
  • ENT_QUOTES - Αποκωδικοποιεί τις διπλές και μονοπλούς εισαγωγικές και εξαγωγικές οντότητες.
  • ENT_NOQUOTES - Δεν αποκωδικοποιεί κανένα εισαγωγικό και εξαγωγικό κόμμα.

Καθορίζει τις επιπλέον σημαίες για τον τύπο εγγράφου που χρησιμοποιείται:

  • ENT_HTML401 - Προεπιλεγμένο. Επεξεργάζεται τον κώδικα ως HTML 4.01.
  • ENT_HTML5 - Επεξεργάζεται τον κώδικα ως HTML 5.
  • ENT_XML1 - Επεξεργάζεται τον κώδικα ως XML 1.
  • ENT_XHTML - Επεξεργάζεται τον κώδικα ως XHTML.
character-set

Προαιρετικό. Τιμή αλφαβήτου που καθορίζει τη συλλογή χαρακτήρων που χρησιμοποιείται.

Αποδεκτές τιμές:

  • UTF-8 - Προεπιλεγμένο. 8-bit Unicode που είναι συμβατό με το ASCII
  • ISO-8859-1 - Western European
  • ISO-8859-15 - Western European (περιλαμβάνει τα εικονίδια ευρώ και τα χαρακτήρες γαλλικών και φινλανδικών που λείπουν από το ISO-8859-1)
  • cp866 - Κάθετο χαρακτήρι για το DOS Cyrillic character set
  • cp1251 - Κάθετο χαρακτήρι για το Windows Cyrillic character set
  • cp1252 - Κάθετο χαρακτήρι για το Windows Western European character set
  • KOI8-R - Ρωσική γλώσσα
  • BIG5 - Κινεζική παραδοσιακή, κυρίως χρησιμοποιείται στην Ταϊβάν
  • GB2312 - Κινεζική απλοποιημένη, εθνικός σύνολος χαρακτήρων
  • BIG5-HKSCS - Big5 με επέκταση για το Χονγκ Κονγκ
  • Shift_JIS - Ιαπωνική γλώσσα
  • EUC-JP - Ιαπωνική γλώσσα
  • MacRoman - Σύνολο χαρακτήρων που χρησιμοποιείται από το Mac operating system

Σημειώσεις:Στις εκδόσεις του PHP πριν από το 5.4, οι μη αναγνωρισμένες συλλογές χαρακτήρων αγνοούνται και αντικαθίστανται από το ISO-8859-1. Από την έκδοση 5.4 και μετά, οι μη αναγνωρισμένες συλλογές χαρακτήρων αγνοούνται και αντικαθίστανται από το UTF-8.

Τεχνικές λεπτομέρειες

Επιστροφή τιμής: Επιστρέφει την μετατρεπόμενη αλφαβή.
Έκδοση PHP: 4.3.0+

Αναλυτική καταγραφή ενημερώσεων:

Έκδοση Σημείωση
PHP 5 character-set Η προεπιλεγμένη τιμή του παραμέτρου άλλαξε σε UTF-8.
PHP 5.4

Επιaggiέχθηκαν επιπλέον σημαία για καθορισμό του τύπου εγγράφου που ισχύει για το φύλλο μετάφρασης:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 New support for multibyte encoding added.

More Examples

Example 1

Convert HTML entities to characters:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // Only convert double quotes
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Convert double and single quotes
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // Do not convert any quotes
?>

HTML output of the above code (view source code):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

Browser output of the above code:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Example 2

Convert HTML entities to characters using the Western European character set:

<?php
$str = "My name is Øyvind Øsane. I'm Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

HTML output of the above code (view source code):

<!DOCTYPE html>
<html>
<body>
My name is Øyvind Øsane. I'm Norwegian.
</body>
</html>

Browser output of the above code:

My name is Øyvind Øsane. I'm Norwegian.