Najnowsze tutoriale tworzenie stron internetowych
 

PHP htmlspecialchars() Function

<String referencyjny PHP

Przykład

Konwersja predefiniowanych znaków "<" (less than) i ">" (greater than) do podmiotów HTML:

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

Wyjście HTML z kodem powyżej będzie (View Source) :

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

Wyjście przeglądarka kodu powyżej będą:

This is some <b>bold</b> text.
Uruchomić przykład »

Definicja i Wykorzystanie

htmlspecialchars() konwertuje kilka predefiniowanych znaków do podmiotów HTML.

Predefiniowane znaki są:

  • I (ampersand) staje się ze wzmacniacza;
  • " (double quote) staje cali do
  • ' (single quote) staje się & # 039;
  • < (less than) staje się i LT;
  • > (greater than) staje & gt;

Wskazówka: Aby dokonać konwersji jednostek specjalnych HTML z powrotem do znaków, należy użyć htmlspecialchars_decode() funkcji.


Składnia

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

Parametr Opis
string Wymagany. Określa ciąg do zamiany
flags Opcjonalny. Określa, jak radzić sobie cytaty, nieważne kodowania i stosowany typ dokumentu.

Dostępne style cytat to:

  • ENT_COMPAT - domyślna. Koduje tylko cudzysłów
  • ENT_QUOTES - Koduje dwu- i apostrofów
  • ENT_NOQUOTES - nie koduje żadnych cytatów

Nieprawidłowy kodowania:

  • ENT_IGNORE - ignoruje nieprawidłowy kodowania zamiast funkcja zwraca pusty. Należy unikać, ponieważ może to mieć wpływ na bezpieczeństwo.
  • ENT_SUBSTITUTE - Zastępuje nieprawidłową kodowanie przez określony zestaw znaków z Unicode Wymiana znaków U + FFFD (UTF-8) lub & # FFFD; zamiast wrócić pusty ciąg.
  • ENT_DISALLOWED - zastępuje punkty kodowe, które są nieważne określonego typu dokumentów z Unicode Wymiana znaków U + FFFD (UTF-8) lub & # FFFD;

Dodatkowe flagi dla określania używany doctype:

  • ENT_HTML401 - domyślna. Uchwyt kodu jako HTML 4.01
  • ENT_HTML5 - Handle jako kod HTML 5
  • ENT_XML1 - Handle kod jako XML 1
  • ENT_XHTML - Handle kod jako XHTML
character-set Opcjonalny. Ciąg znaków, który określa, który znak ustawiony w użyciu.

Dozwolone wartości to:

  • UTF-8 - domyślna. ASCII kompatybilny multi-byte 8-bit Unicode
  • ISO-8859-1 - zachodnioeuropejska
  • ISO-8859-15 - zachodnioeuropejska (dodaje znak Euro + francuski i fiński brakujące litery w ISO-8859-1)
  • cp866 - DOS-specyficzny zestaw znaków cyrylicy
  • cp1251 - Windows specyficzne charset cyrylica
  • CP1252 - Windows charset specyficzne dla zachodnioeuropejskich
  • KOI-8 - Rosyjski
  • BIG5 - chiński tradycyjny, stosowany głównie w Tajwanie
  • GB2312 - chiński uproszczony, narodowy standardowy zestaw znaków
  • BIG5-HKSCS - Big5 z rozszerzeniami w Hong Kongu
  • Shift_JIS - Japanese
  • MIE-JP - japoński
  • MacRoman - zestawu znaków, który został użyty przez Mac OS

Note: Nierozpoznane postaci zestawów będą ignorowane i zastąpione przez ISO-8859-1 w wersjach wcześniejszych od PHP 5.4. Od PHP 5.4, zostanie ono zignorowane zastąpiony przez UTF-8.

double_encode Opcjonalny. Wartość logiczna określająca, czy do zakodowania istniejących podmiotów HTML lub nie.
  • TRUE - domyślna. Przekonwertuje wszystko
  • False - nie będą kodować istniejących podmiotów html

Szczegóły techniczne

Zwracana wartość: Zwraca skonwertowany łańcuch

Jeśli ciąg zawiera nieprawidłowe kodowanie, zwróci pusty ciąg, chyba albo ENT_IGNORE lub ENT_SUBSTITUTE flagi są ustawione
Wersja PHP: 4+
Lista zmian: Domyślna wartość parametru zestawu znaków został zmieniony na UTF-8 w PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 i ENT_XHTML dodano 5,4 PHP

ENT_IGNORE dodano 5,3 PHP

Parametr double_encode dodano PHP 5.2.3

Postać, zestaw parametrów dodano 4,1 PHP

Więcej przykładów

Przykład 1

Konwersja kilka predefiniowanych znaków do podmiotów 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
?>

Wyjście HTML z kodem powyżej będzie (View Source) :

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

Wyjście przeglądarka kodu powyżej będą:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Uruchomić przykład »

Przykład 2

Konwersja cudzysłowów do podmiotów HTML:

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

Wyjście HTML z kodem powyżej będzie (View Source) :

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

Wyjście przeglądarka kodu powyżej będą:

I love "PHP" .
Uruchomić przykład »

<String referencyjny PHP