html_entity_decode
(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode — Μετατρέψτε όλες τις HTML οντότητες στους κατάλληλους χαρακτήρες
Περιγραφή
Η συνάρτηση html_entity_decode() είναι εκτελεί την αντίστροφη λειτουργία από την htmlentities() γιατι μετατρέπει όλες τις HTML οντότητες του string στους κατάλληλους χαρακτήρες.
Η προαιρετική δεύτερη παράμετρος quote_style σας επιτρέπει να ορίσετε το τι θα γίνει με τα 'απλά' και τα "διπλά" εισαγωγικά. Παίρνει μία από τις ακόλουθες τρεις σταθερές με την προεπιλεγμένη να είναι η ENT_COMPAT:
Όνομα σταθεράς | Περιγραφή |
---|---|
ENT_COMPAT | Θα μετατρέψει τα διπλά εισαγωγικά και θα αφήσει τα απλά ανέγγιχτα. |
ENT_QUOTES | Θα μετατρέψει τα διπλά και τα απλά εισαγωγικά. |
ENT_NOQUOTES | Δε θα μετατρέψει τα διπλά και τα απλά εισαγωγικά. |
Η προκαθορισμένη επιλογή για την παράμετρο charset είναι το σύνολο χαρακτήρων ISO-8859-1. Αυτή ορίζει το σύνολο χαρακτήρων που θα χρησιμοποιηθεί κατά τη μετατροπή. Η υποστήριξη για την τρίτη αυτή παράμετρο προστέθηκε στην 4.1.0.
Η έκδοση PHP 4.3.0 και οι νεώτερες αυτής υποστηρίζουν τα ακόλουθα σύνολα χαρακτήρων:
Σύνολο χαρακτήρων | Δεύτερη ονομασία | Περιγραφή |
---|---|---|
ISO-8859-1 | ISO8859-1 | Western European, Latin-1 |
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Περιέχει επιπλέον το σύμβολο του Ευρώ, καθώς επίσης γαλλικά και φινλανδικά γράμματα, που δεν περιλαμβάνονται στο Latin-1(ISO-8859-1). |
UTF-8 | Συμβατό με ASCII, multi-byte 8-bit Unicode. | |
cp866 | ibm866, 866 | Σύνολο χαρακτήρων του DOS για ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά. |
cp1251 | Windows-1251, win-1251, 1251 | Σύνολο χαρακτήρων των Windows για ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά. |
cp1252 | Windows-1252, 1252 | Σύνολο χαρακτήρων των Windows για Western European. |
KOI8-R | koi8-ru, koi8r | Ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά. |
BIG5 | 950 | Παραδοσιακά κινέζικα, κυρίως αυτά που χρησιμοποιούνται στην Ταϊβάν. |
GB2312 | 936 | Απλοποιημένα κινέζικα, το εθνικά χρησιμοποιούμενο σύνολο χαρακτήρων. |
BIG5-HKSCS | Big5 με επεκτάσεις για το Hong Kong, παραδοσικά κινέζικα. | |
Shift_JIS | SJIS, 932 | Japanese |
EUC-JP | EUCJP | Γιαπωνέζικα |
Note: Στη θέση οποιουδήποτε συνόλου χαρακτήρων που δεν αναγνωρίζεται θα χρησιμοποιηθεί το ISO-8859-1.
Example#1 Αποκωδικοποιώντας html οντότητες
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities ($string)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
$c = unhtmlentities($a);
echo $c; // I'll "walk" the <b>dog</b> now
?>
Note: Μπορεί να απορείτε γιατί η trim(html_entity_decode(' ')); δεν μειώνει το μήκος του string ώστε να προκύψει το κενό, ο λόγος είναι ότι η οντότητα ' ' δεν είναι ο κώδικας ASCII 32 (που γίνεται κενός χαρακτήρας από τη συνάρτηση trim()) αλλά ο κώδικας ASCII code 160 (0xa0) στο προκαθορισμένο σύνολο χαρακτήρων ISO8859-1.
Ανατρέξτε επίσης στις: htmlentities(), htmlspecialchars(), get_html_translation_table(), htmlspecialchars() και urldecode().