PHP html_entity_decode() funktio

Esimerkki

把 HTML 实体转换为字符:

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

Yllä olevan koodin HTML-tulo näyttää tältä (tarkista lähdekoodi):

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

以上代码的浏览器输出:

<? W3S?h????>

Määrittely ja käyttö

html_entity_decode() funktio muuntaa HTML-entiteetit merkkijonoksi.

html_entity_decode() funktio on htmlentities() Funktion vastakohta.

Syntaksi

html_entity_decode(string,flags,character-set)
Parametri Kuvaus
string Välttämätön. Määrittelee, minkä merkkijonon dekoodata.
flags

Valinnainen. Määrittelee, miten lainausmerkit käsitellään ja minkä dokumentityypin käytetään.

Käytettävissä olevat lainausmerkkityypit:

  • ENT_COMPAT - Oletus. Dekoodataan vain kaksoislapaiset lainausmerkit.
  • ENT_QUOTES - Dekoodataan sekä kaksois- että yksittäislapaiset lainausmerkit.
  • ENT_NOQUOTES - Ei dekoodata minkäänlaiseja lainausmerkkejä.

Määritellään käytettävän dokumentityypin lisä flags:

  • ENT_HTML401 - Oletus. Käsitellään koodina HTML 4.01:ää.
  • ENT_HTML5 - Käsitellään koodina HTML 5:ää.
  • ENT_XML1 - Käsitellään koodina XML 1:ää.
  • ENT_XHTML - Käsitellään koodina XHTML:ää.
character-set

Valinnainen. Merkkijonkovaranto, joka määrittelee käytettävän merkistön.

Sallitut arvot:

  • UTF-8 - Oletus. ASCII-yhteensopiva 8-bittinen Unicode
  • ISO-8859-1 - Länsieurooppa
  • ISO-8859-15 - Länsieurooppa (sisältää euromerkki + ISO-8859-1:stä puuttuvat ranskan ja suomen kirjaimet)
  • cp866 - DOS-omaiset kyrilliset merkistöt
  • cp1251 - Windows-omaiset kyrilliset merkistöt
  • cp1252 - Windows-omaiset länsieurooppalaiset merkistöt
  • KOI8-R - Venäjä
  • BIG5 - Kiinan kieli, pääasiassa käytössä Taiwanissa
  • GB2312 - Kiinan kieli, kansallinen merkistö
  • BIG5-HKSCS - Hongkongin laajennuksella varustettu Big5
  • Shift_JIS - Japani
  • EUC-JP - Japani
  • MacRoman - Mac-käyttöjärjestelmän käyttämä merkistö

Kommentti:PHP 5.4:n aikaisissa versioissa tunnistamattomat merkkijonkonumerot jätetään huomiotta ja korvataan ISO-8859-1:llä. PHP 5.4:stä lähtien tunnistamattomat merkkijonkonumerot jätetään huomiotta ja korvataan UTF-8:lla.

Tekninen yksityiskohta

Palautusarvo: Palauttaa muunnetun merkkijonon
PHP-versio: 4.3.0+

Päivityspäiväkirja:

Versio Kuvaus
PHP 5 character-set Parametrien oletusarvo muutettiin UTF-8:ksi.
PHP 5.4

Lisättiin lisä flags, jotka määrittelevät, minkä tyyppisille dokumenteille käännöskäsiä sovelletaan:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 Lisätty tuki monibiittisille koodauksille.

更多实例

例子 1

把 HTML 实体转换为字符:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // 不转换任何引号
?>

以上代码的 HTML 输出(查看源代码):

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

以上代码的浏览器输出:

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

例子 2

通过使用西欧字符集,把 HTML 实体转换为字符:

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

以上代码的 HTML 输出(查看源代码):

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

以上代码的浏览器输出:

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