PHP htmlentities() funktionen

Exempel

Konvertera tecken till HTML-entiteter:

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

Ovanstående kods HTML-utdata är följande (visa källkoden):

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

Ovanstående kods utdata i webbläsaren:

<? W3S?h????>

Definition och användning

htmlentities()-funktionen för att konvertera tecken till HTML-entiteter.

Tips:För att konvertera HTML-entiteter till tecken, använd html_entity_decode() funktionen.

Tips:Använd get_html_translation_table() Funktion som returnerar den översättningsmatris som används av htmlentities().

Syntax

htmlentities(string,flags,character-set,double_encode)
Parameter Beskrivning
string Obligatorisk. Specificera den sträng som ska konverteras.
flags

Valfritt. Specificera hur citattecken, ogiltig kodning och vilken dokumenttyp som används ska hanteras.

Tillgängliga citattecken:

  • ENT_COMPAT - Standard. Koda endast dubbelcitatstecken.
  • ENT_QUOTES - Koda både dubbel- och enkelcitatstecken.
  • ENT_NOQUOTES - Koda inte några citattecken.

Ogiltig kodning:

  • ENT_IGNORE - Ignorera ogiltig kodning, istället för att returnera en tom sträng. Undvik detta så mycket som möjligt, eftersom det kan påverka säkerheten.
  • ENT_SUBSTITUTE - Ersätt ogiltig kodning med en specificerad tecken som innehåller Unicode-ersättningskaraktären U+FFFD (UTF-8) eller &#FFFD; istället för att returnera en tom sträng.
  • ENT_DISALLOWED - Ersätt ogiltiga teckenpunkter i den specificerade dokumenttypen med Unicode-ersättningskaraktären U+FFFD (UTF-8) eller &#FFFD;.

Ytterligare flaggor för den dokumenttyp som används:

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

Valfritt. En sträng som specificerar den teckenuppsättning som ska användas.

Tillåtna värden:

  • UTF-8 - Standard. ASCII-kompatibel 8-bitars Unicode
  • ISO-8859-1 - Västlig Europa
  • ISO-8859-15 - Västlig Europa (inbegriper eurotecken + de franska och finska bokstäver som saknas i ISO-8859-1)
  • cp866 - DOS-specifik kyrillisk teckenuppsättning
  • cp1251 - Windows-specifik kyrillisk teckenuppsättning
  • cp1252 - Windows-specifik västlig europeisk teckenuppsättning
  • KOI8-R - Ryska
  • BIG5 - Traditionell kinesiska, huvudsakligen använd i Taiwan
  • GB2312 - Kinesiska,国家标准字符集
  • BIG5-HKSCS - Big5 med Hongkong-utökning
  • Shift_JIS - Japanskt
  • EUC-JP - Japanskt
  • MacRoman - Teckenuppsättning som används av Mac OS

Kommentar:I versioner av PHP innan 5.4, ignoreras okända teckenuppsättningar och ersätts med ISO-8859-1. Från PHP 5.4 och framåt ignoreras okända teckenuppsättningar och ersätts med UTF-8.

double_encode

Valfritt. Boolesk värde som anger om befintliga HTML-entiteter ska kodas.

  • TRUE - Standard. Konverterar varje entitet.
  • FALSE - Kodar inte befintliga HTML-entiteter.

Tekniska detaljer

Returvärde:

returnerar den konverterade strängen.

Om string Innehåller ogiltig kodning, returneras en tom sträng, om inte ENT_IGNORE eller ENT_SUBSTITUTE flaggan är satt.

PHP-version: 4+
Uppdateringslogg:

I PHP 5:character-set Standardvärdet för parametern ändrades till UTF-8.

I PHP 5.4 lades till: ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 och ENT_XHTML.

I PHP 5.3 lades ENT_IGNORE.

I PHP 5.2.3 lades double_encode Parameter.

I PHP 4.1 lades character-set Parameter.

Mer exempel

Exempel 1

Konvertera tecken till HTML-entiteter:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // Endast konverterar dubbelcitat
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Konverterar dubbel- och enkelcitat
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // Konverterar inte några citat
?>

Ovanstående kods HTML-utdata är följande (visa källkoden):

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

Ovanstående kods utdata i webbläsaren:

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

运行实例

Exempel 2

Genom att använda västerländsk teckenuppsättning konverteras vissa tecken till HTML-entiteter:

<?php
$str = "Mitt namn är ?yvind ?sane. Jag är norsk.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// Kommer endast att konvertera dubbelcitat (inte enkla citat), och använder teckenuppsättningen Västerländsk
?>

Ovanstående kods HTML-utdata är följande (visa källkoden):

<!DOCTYPE html>
<html>
<body>
Mitt namn är Øyvind Åsane. Jag är norsk.
</body>
</html>

Ovanstående kods utdata i webbläsaren:

Mitt namn är ?yvind ?sane. Jag är norsk.

运行实例