Funkcja html_entity_decode() w PHP

Przykład

Konwersja HTML entity na znaki:

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

Powyższy kod wygeneruje następujący HTML (zobacz kod źródłowy):

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

Wyjście przeglądarki dla powyższego kodu:

<? W3S?h????>

Definicja i użycie

Funkcja html_entity_decode() konwertuje HTML entity na znaki.

Funkcja html_entity_decode() jest htmlentities() Przeciwna funkcji.

Gramatyka

html_entity_decode(string,flags,character-set)
Parametr Opis
string Wymagane. Określa ciąg znaków do dekodowania.
flags

Opcjonalne. Określa, jak przetwarzać cudzysłowy oraz który typ dokumentu używać.

Dostępne typy cudzysłów:

  • ENT_COMPAT - domyślny. Dekoduje tylko podwójne cudzysłowy
  • ENT_QUOTES - dekoduje podwójne i pojedyncze cudzysłowy
  • ENT_NOQUOTES - nie dekoduje żadnych cudzysłów

Określ dodatkowe flagi używanego typu dokumentu:

  • ENT_HTML401 - domyślny. Przetwarzane jako HTML 4.01
  • ENT_HTML5 - przetwarzane jako HTML 5
  • ENT_XML1 - przetwarzane jako XML 1
  • ENT_XHTML - przetwarzane jako XHTML
character-set

Opcjonalne. Wartość ciągowa, określająca używany zestaw znaków.

Dopuszczalne wartości:

  • UTF-8 - domyślny. 8-bitowy Unicode, zgodny z ASCII
  • ISO-8859-1 - zachodnioeuropejski
  • ISO-8859-15 - zachodnioeuropejski (zawiera znaki euro + brakujące litery francuskie i fińskie w ISO-8859-1)
  • cp866 - zestaw znaków specjalny dla systemu DOS
  • cp1251 - zestaw znaków specjalny dla systemu Windows
  • cp1252 - zestaw znaków specjalny dla systemu Windows
  • KOI8-R - rosyjski
  • BIG5 - chiński złożony, głównie używany na Tajwanie
  • GB2312 - chiński uproszczony, standardowa zbiorowość znaków
  • BIG5-HKSCS - Big5 z rozszerzeniem Hongkong
  • Shift_JIS - japoński
  • EUC-JP - japoński
  • MacRoman - zestaw znaków używany w systemie Mac OS

Komentarz:W wersjach PHP 5.4 i wcześniejszych, niezidentyfikowane zestawy znaków są pomijane i zastępowane ISO-8859-1. Od PHP 5.4, niezidentyfikowane zestawy znaków są pomijane i zastępowane UTF-8.

Szczegółowe informacje techniczne

Zwracana wartość: Zwraca przekształcony ciąg znaków
Wersja PHP: 4.3.0+

Dziennik aktualizacji:

Wersja Opis
PHP 5 character-set Domyślna wartość parametru zmieniona na UTF-8.
PHP 5.4

Dodano dodatkowe flagi określające typ dokumentu, dla którego mają obowiązywać tabele tłumaczeń:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 Dodano wsparcie dla wielobajtowych kodowań.

Więcej przykładów

Przykład 1

Konwersja HTML entity na znaki:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // Konwertuje tylko znaki cudzysłów podwójne
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Konwertuje zarówno znaki cudzysłów pojedyncze, jak i podwójne
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // Nie konwertuje żadnych znaków cudzysłów
?>

Wyjście HTML dla powyższego kodu (zobacz kod źródłowy):

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

Wyjście przeglądarki dla powyższego kodu:

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

Przykład 2

Konwersja HTML entity na znaki za pomocą zestawu znaków Europy Zachodniej:

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

Wyjście HTML dla powyższego kodu (zobacz kod źródłowy):

<!DOCTYPE html>
<html>
<body>
Moje imię to ?yvind ?sane. Jestem Norwegiem.
</body>
</html>

Wyjście przeglądarki dla powyższego kodu:

Moje imię to ?yvind ?sane. Jestem Norwegiem.