PHP htmlentities() -funktio

Esimerkki

Muunna merkit HTML-olennoksiin:

<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>

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

<!DOCTYPE html>
<html>
<body>
<© W3Sçh°°¦§>
</body>
</html>

以下代码的浏览器输出:

<? W3S?h????>

Määrittely ja käyttö

htmlentities() -funktio muuntaa merkit HTML-entiteeteiksi.

Vinkki:Jos haluat muuntaa HTML-entiteetit takaisin merkeiksi, käytä html_entity_decode() Funktio.

Vinkki:Käytä get_html_translation_table() Funktio palauttaa translation table, jota käytetään functionin htmlentities().

Syntaksi

htmlentities(string,flags,character-set,double_encode)
Parametrit Kuvaus
string Välttämätön. Määrittää muunnettavan merkkijonon.
flags

Valinnainen. Määrittää, miten lainausmerkit, epävirallinen koodaus ja dokumenttipyyntityyppi käsitellään.

Käytettävissä olevat lainausmerkkityypit:

  • ENT_COMPAT - Oletus. Vain kaksoislainausmerkit koodataan.
  • ENT_QUOTES - Koodataan sekä kaksois- että yksittäiset lainausmerkit.
  • ENT_NOQUOTES - Ei koodata mitään lainausmerkkejä.

Epävirallinen koodaus:

  • ENT_IGNORE - Ignoroidaan epävirallinen koodaus eikä palauteta tyhjää merkkijonoa. Vältä sitä, koska se voi vaikuttaa turvallisuuteen.
  • ENT_SUBSTITUTE - Korvataan epävirallinen koodaus määritellyllä merkillä, joka sisältää Unicode korvausmerkin U+FFFD (UTF-8) tai &#FFFD;, eikä palauteta tyhjää merkkijonoa.
  • ENT_DISALLOWED - Korvataan määritellyn dokumenttipyyntityypin epäviralliset merkkikohteet Unicode korvausmerkillä U+FFFD (UTF-8) tai &#FFFD;.

Lisä flags, jotka määrittävät käytettävän dokumenttipyyntityypin:

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

Valinnainen. Merkkijono, joka määrittää käytettävän merkkikansion.

允许的值:

  • Sallitut arvot:
  • UTF-8 - Oletus. ASCII-yhteensopiva monibittinen 8-bittinen Unicode
  • ISO-8859-1 - Länsieurooppa
  • ISO-8859-15 - Länsieurooppa (lisätty euro符号 + ISO-8859-1:ssä puuttuvat ranskan ja suomen kirjaimet)
  • cp866 - DOS-erityinen kirjaimisto
  • cp1251 - Windows-erityinen kirjaimisto
  • cp1252 - Windows-erityinen länsieurooppalainen merkistö
  • KOI8-R - Venäjä
  • BIG5 - Hongkongin kieli, pääasiallisesti käytetty Taiwanissa
  • GB2312 - Kiinan kieli, kansallinen merkistö
  • BIG5-HKSCS - Laajennettu Big5 Hongkongissa käytetty
  • Shift_JIS - Japani
  • EUC-JP - Japani

MacRoman - Mac-käyttöjärjestelmän käyttämä merkistöKommentti:

double_encode

Valinnainen. Boolean-arvo, joka määrittää, koodataanko olemassa olevat HTML-olennukset.

  • TRUE - Oletus. Muunnetaan jokainen olennus.
  • FALSE - Ei koodata olemassa olevia HTML-olennuksia.

Tekninen yksityiskohta

Palautusarvo:

Palauttaa muunnetun merkkijonon.

Jos string Jos sisältää virheellisen koodauksen, palautetaan tyhjä merkkijono, ellei asetettu ENT_IGNORE tai ENT_SUBSTITUTE -merkkiä.

PHP-versio: 4+
Päivityshistoria:

PHP 5:ssächaracter-set Parametrien oletusarvo muutettiin UTF-8:ksi.

PHP 5.4:ssä lisättiin: ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 ja ENT_XHTML.

PHP 5.3:ssä lisättiin ENT_IGNORE.

PHP 5.2.3:ssä lisättiin double_encode Parametrit.

PHP 4.1:ssä lisättiin character-set Parametrit.

Lisää esimerkkejä

Esimerkki 1

Muunna merkit HTML-olennoksiin:

<?php
$str = "Bill & 'Steve'";
echo htmlentites($str, ENT_COMPAT); // Muunna vain kaksoislainausmerkit
echo "<br>";
echo htmlentites($str, ENT_QUOTES); // Muunna kaksois- ja yksinkertaiset lainausmerkit
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号
?>

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

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

以下代码的浏览器输出:

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

运行实例

例子 2

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

<?php
$str = "My name is ?yvind ?sane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// 仅转换双引号(不转换单引号),并使用西欧字符集
?>

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

<!DOCTYPE html>
<html>
<body>
Oma nimi on Øyvind Åsane. Olen norjalainen.
</body>
</html>

以下代码的浏览器输出:

Oma nimi on ?yvind ?sane. Olen norjalainen.

运行实例