Ultimele tutoriale de dezvoltare web
 

PHP htmlspecialchars() Function

<PHP String Reference

Exemplu

Conversia caracterele predefinite "<" (less than) și ">" (greater than) entităților HTML:

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

Ieșirea HTML a codului de mai sus va fi (View Source) :

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

Ieșirea browser-a codului de mai sus va fi:

This is some <b>bold</b> text.
Run exemplu »

Definiție și utilizare

htmlspecialchars() funcția convertește unele caractere predefinite pentru entitati HTML.

Caracterele predefinite sunt:

  • & (ampersand) devine & amp;
  • " (double quote) devine & quot;
  • " (single quote) devine & # 039;
  • < (less than) devine & lt;
  • > (greater than) devine & gt;

Sfat: Pentru a converti entități speciale HTML înapoi de caractere, utilizați htmlspecialchars_decode() funcția.


Sintaxă

htmlspecialchars( string,flags,character-set,double_encode )

Parametru Descriere
string Necesar. Specifică șirul pentru a converti
flags Opțional. Specifică modul în care să se ocupe de citate, de codificare invalid și tipul de document utilizat.

disponibile stiluri citat sunt:

  • ENT_COMPAT - implicit. Codifică ghilimele duble
  • ENT_QUOTES - Codifică ghilimele duble și single
  • ENT_NOQUOTES - nu codifică citate

Codificare nevalid:

  • ENT_IGNORE - Ignoră codificare nevalidă în loc de a avea funcția de a reveni un șir gol. Ar trebui să fie evitată, deoarece poate avea implicații de securitate.
  • ENT_SUBSTITUTE - Înlocuiesc codare invalid pentru un caracter specificat cu un set de caractere de înlocuire Unicode U + FFFD (UTF-8) sau & # FFFD; în loc de a se întoarce un șir gol.
  • ENT_DISALLOWED - Înlocuiesc puncte de cod care nu sunt valide în doctype specificate cu înlocuire de caractere Unicode U + FFFD (UTF-8) sau & # FFFD;

steaguri suplimentare pentru specificarea DOCTYPE utilizate:

  • ENT_HTML401 - implicit. Manipulați codul ca HTML 4.01
  • ENT_HTML5 - Manipulați cod ca HTML 5
  • ENT_XML1 - Mâner cod XML 1
  • ENT_XHTML - Manipulați cod ca XHTML
character-set Opțional. Un șir de caractere care specifică ce-setat să utilizeze.

Valori permise sunt:

  • UTF-8 - Standard. ASCII multi-octet 8-biți Unicode compatibil
  • ISO-8859-1 - Europa de Vest
  • ISO-8859-15 - Europa de Vest (adaugă semnul euro + literele franceze și finlandeze lipsă în ISO-8859-1)
  • cp866 - DOS-specifice charset chirilică
  • cp1251 - specifice pentru Windows charset chirilică
  • cp1252 - charset specifice pentru Windows pentru Europa de Vest
  • KOI8-R - Rusă
  • BIG5 - chineză tradițională, utilizat în principal în Taiwan
  • GB2312 - chineză simplificată, standard național set de caractere
  • BIG5-HKSCS - Big5 cu extensii din Hong Kong
  • Shift_JIS - Japoneză
  • EUC-JP - Japoneză
  • MacRoman - Caracter-set care a fost utilizat de Mac OS

Note: nerecunoscute de caractere seturi vor fi ignorate și înlocuite cu ISO-8859-1 în versiunile anterioare PHP 5.4. Ca de PHP 5.4, acesta va fi ignorat înlocuit cu UTF-8.

double_encode Opțional. O valoare boolean care specifică dacă pentru a codifica entități html existente sau nu.
  • TRUE - implicit. Va converti totul
  • FALSE - nu va codifica entități html existente

Detalii tehnice

Întoarcere Valoare: Returnează șirul convertit

Dacă șirul conține codificare invalid, acesta va returna un șir gol, cu excepția cazului fie ENT_IGNORE sau steaguri ENT_SUBSTITUTE sunt setate
Versiune PHP: 4+
Changelog: Valoarea implicită pentru parametrul de caractere-set a fost schimbat la UTF-8 în PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 și ENT_XHTML au fost adăugate în PHP 5.4

ENT_IGNORE a fost adăugat în PHP 5.3

Parametrul double_encode a fost adăugat în PHP 5.2.3

Parametrul character-set a fost adăugat în PHP 4.1

Mai multe exemple

Exemplul 1

Conversia unele caractere predefinite pentru entitati HTML:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

Ieșirea HTML a codului de mai sus va fi (View Source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

Ieșirea browser-a codului de mai sus va fi:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Run exemplu »

Exemplul 2

Conversia ghilimele duble la entitati HTML:

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

Ieșirea HTML a codului de mai sus va fi (View Source) :

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

Ieșirea browser-a codului de mai sus va fi:

I love "PHP" .
Run exemplu »

<PHP String Reference