PHP htmlspecialchars() function

Example

Convert predefined characters "<" (less than) and ">" (greater than) to HTML entities:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

Ovanstående kods HTML-utdata är som följer (se källkod):

<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>

Ovanstående kods utdata i webbläsaren:

This is some <b>bold</b> text.

Kör en instans

Definition and usage

The htmlspecialchars() function converts predefined characters to HTML entities.

Predefined characters are:

  • & (ampersand) becomes &
  • " (double quote) becomes "
  • ' (single quote) becomes '
  • < (less than) becomes <
  • > (greater than) becomes >

Tip:To convert special HTML entities back to characters, use htmlspecialchars_decode() Function.

Syntax

htmlspecialchars(string,flags,character-set,double_encode)
Parameter Description
string Required. Specifies the string to be converted.
flags

Optional. Specifies how to handle quotes, invalid encoding, and which document type to use.

Available quote types:

  • ENT_COMPAT - Default. Encode double quotes only.
  • ENT_QUOTES - Encode both double and single quotes.
  • ENT_NOQUOTES - Do not encode any quotes.

Invalid encoding:

  • ENT_IGNORE - Ignore invalid encoding instead of returning an empty string from the function. It should be avoided as it may have security implications.
  • ENT_SUBSTITUTE - Substitute invalid encoding with a specified character that has a Unicode replacement character U+FFFD (UTF-8) or &#FFFD;, rather than returning an empty string.
  • ENT_DISALLOWED - Substitute invalid code points in the specified document type with the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;.

Flaggor för att specificera det använda dokumenttypen:

  • ENT_HTML401 - standard. Behandlas som HTML 4.01.
  • ENT_HTML5 - behandlas som HTML 5.
  • ENT_XML1 - behandlas som XML 1.
  • ENT_XHTML - behandlas som XHTML.
character-set

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

Tillåtna värden:

  • UTF-8 - standard. ASCII-kompatibel 8-bitars Unicode
  • ISO-8859-1 - västerländsk
  • ISO-8859-15 - västerländsk (innehåller eurotecken + de franska och finska bokstäver som saknas i ISO-8859-1)
  • cp866 - DOS-dedikerad kyrillisk teckenuppsättning
  • cp1251 - Windows-dedikerad kyrillisk teckenuppsättning
  • cp1252 - Windows-dedikerad västerländsk teckenuppsättning
  • KOI8-R - ryska
  • BIG5 - traditionell kinesiska, huvudsakligen använd i Taiwan
  • GB2312 - förenklad kinesiska, nationell standardteckenuppsättning
  • BIG5-HKSCS - Big5 med Hongkong-utökning
  • Shift_JIS - japanska
  • EUC-JP - japanska
  • MacRoman - teckenuppsättningen används av Mac-operativsystemet

Kommentar:I versioner av PHP 5.4 och tidigare, ignoreras okända teckenuppsättningar och ersätts av ISO-8859-1. Från PHP 5.4 och framåt, ignoreras okända teckenuppsättningar och ersätts av 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+
Uppdateringslog

I PHP 5:character-set Standardvärdet för parametern ändras 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 till ENT_IGNORE.

I PHP 5.2.3 lades till double_encode Parameter.

I PHP 4.1 lades character-set Parameter.

Mer exempel

Exempel 1

Konvertera vissa fördefinierade tecken till HTML-entities:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // Konvertera endast dubbelcitat
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Konvertera dubbel- och enkelcitat
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Konvertera inga citat
?>

Ovanstående kods HTML-utdata är som följer (se källkod):

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

Ovanstående kods utdata i webbläsaren:

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

Kör en instans

Exempel 2

Konvertera dubbelcitat till HTML-entities:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Konvertera dubbel- och enkelcitat
?>

Ovanstående kods HTML-utdata är som följer (se källkod):

<!DOCTYPE html>
<html>
<body>
Jag älskar "PHP".
</body>
</html>

Ovanstående kods utdata i webbläsaren:

Jag älskar "PHP".

Kör en instans