PHP htmlentities() funktion

Eksempel

Konverter karakterer til HTML-entiteter:

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

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

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

以上代码的浏览器输出:

<? W3S?h????>

Definition og brug

htmlentities() funktionen til at konvertere tegn til HTML-entiteter.

Vedvisning:For at konvertere HTML-entiteter til tegn, brug html_entity_decode() Funktion.

Vedvisning:Brug get_html_translation_table() Funktion til at returnere den oversættelsestabel, som htmlentities() bruger.

Syntaks

htmlentities(string,flags,character-set,double_encode)
Parameter Beskrivelse
string Obligatorisk. Definerer den streng, der skal konverteres.
flags

Valgfri. Definerer, hvordan citationstegn, ugyldige koder og hvilken dokumenttype der bruges skal håndteres.

Tilgængelige citationstegn typer:

  • ENT_COMPAT - Standard. Koder kun dobbelte citationstegn.
  • ENT_QUOTES - Koder både dobbelte og enkle citationstegn.
  • ENT_NOQUOTES - Koder ingen citationstegn.

Ugyldige koder:

  • ENT_IGNORE - Ignorer ugyldige koder, i stedet for at returnere en tom streng. Undgå at bruge dette, da det kan have sikkerhedsmæssige konsekvenser.
  • ENT_SUBSTITUTE - Erstatte ugyldige koder med en specificeret tegn, der indeholder Unicode-erstatningstegn U+FFFD (UTF-8) eller &#FFFD;, i stedet for at returnere en tom streng.
  • ENT_DISALLOWED - Erstatte ugyldige kodpunkter i den angivne dokumenttype med Unicode-erstatningstegn U+FFFD (UTF-8) eller &#FFFD;.

Yderligere flags for den dokumenttype, der bruges:

  • ENT_HTML401 - Standard. Behandles som HTML 4.01-kode.
  • ENT_HTML5 - Behandles som HTML 5-kode.
  • ENT_XML1 - Behandles som XML 1-kode.
  • ENT_XHTML - Behandles som XHTML-kode.
character-set

Valgfri. En streng, der definerer den tegnsæt, der skal bruges.

Tilladte værdier:

  • UTF-8 - standard. ASCII-kompatibel, flerbytesig 8-bit Unicode
  • ISO-8859-1 - vestlig Europa
  • ISO-8859-15 - vestlig Europa (med euro symbol + de franske og finske bogstaver, der mangler i ISO-8859-1)
  • cp866 - DOS specifik kyrillisk tegnsæt
  • cp1251 - Windows specifik kyrillisk tegnsæt
  • cp1252 - Windows specifik vestlig Europa tegnsæt
  • KOI8-R - russisk
  • BIG5 - traditionel kinesisk, primært brugt i Taiwan
  • GB2312 - kinesisk, national standard tegnsæt
  • BIG5-HKSCS - Big5 med kinesisk opdatering
  • Shift_JIS - japansk
  • EUC-JP - japansk
  • MacRoman - tegnsæt brugt af Mac-operativsystemet

Kommentar:I versioner af PHP før 5.4 blev ikke genkendte tegnsæt ignoreret og erstattet med ISO-8859-1. Fra PHP 5.4 og frem blev ikke genkendte tegnsæt ignoreret og erstattet med UTF-8.

double_encode

Valgfri. Boolsk værdi, der bestemmer om eksisterende HTML-entiteter skal kodes.

  • TRUE - standard. Konverterer hver enhed.
  • FALSE -编码不会对现有的HTML实体进行编码。

Tekniske detaljer

Returværdi:

Returnerer den konverterede streng.

Hvis string Indeholder ugyldig kodning, returnerer en tom streng, medmindre ENT_IGNORE eller ENT_SUBSTITUTE flaget er sat.

PHP version: 4+
Opdateringslog:

I PHP 5:character-set Standardværdien for parameteren ændres til UTF-8.

I PHP 5.4 blev følgende tilføjet: ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 og ENT_XHTML.

I PHP 5.3 blev ENT_IGNORE tilføjet.

I PHP 5.2.3 blev der tilføjet double_encode Parameter.

I PHP 4.1 blev der tilføjet character-set Parameter.

Flere eksempler

Eksempel 1

Konverter karakterer til HTML-entiteter:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // Kun konverter dobbelte citationstegn
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Konverter dobbelte og enkle citationstegn
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 = "Mit navn er ?yvind ?sane. Jeg er norsk.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// 只转换双引号(不转换单引号),并使用西欧字符集
?>

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

<!DOCTYPE html>
<html>
<body>
Mit navn er Øyvind Åsane. Jeg er norsk.
</body>
</html>

以上代码的浏览器输出:

Mit navn er ?yvind ?sane. Jeg er norsk.

运行实例