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); ?>
Wyjście HTML powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> This is some <b>bold</b> text. </body> </html>
Wyjście przeglądarki powyższego kodu:
This is some <b>bold</b> text.
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 >
Hint: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:
Invalid encoding:
Dodatkowe flags dla określonego typu dokumentu:
|
character-set |
Opcjonalne. Ciąg znaków określający używany zestaw znaków. Dopuszczalne wartości:
Komentarz:W wersjach PHP 5.4 i wcześniejszych, nieznane zestawy znaków są ignorowane i zastępowane przez ISO-8859-1. Od PHP 5.4, nieznane zestawy znaków są ignorowane i zastępowane przez UTF-8. |
double_encode |
Opcjonalne. Wartość logiczna określająca, czy istniejące HTML entity mają być zakodowane.
|
Szczegółowe informacje techniczne
Zwracana wartość: |
Zwraca przekształcony ciąg znaków. Jeśli string Jeśli zawiera niepoprawne kodowanie, zwraca pustą ciąg znaków, chyba że ustawiono znak ENT_IGNORE lub ENT_SUBSTITUTE. |
Wersja PHP: | 4+ |
Dziennik zmian: |
W PHP 5:character-set Domyślna wartość parametru zmieniona na UTF-8. W PHP 5.4 dodano: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 i ENT_XHTML. W PHP 5.3 dodano ENT_IGNORE. W PHP 5.2.3 dodano: double_encode Parametry. W PHP 4.1 dodano character-set Parametry. |
Więcej przykładów
Przykład 1
Konwersja niektórych zdefiniowanych znaków na entuty HTML:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // Konwersja tylko podwójnych cudzysłów echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Konwersja podwójnych i pojedynczych cudzysłów echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // Nie konwertuj żadnych cudzysłów ?>
Wyjście HTML powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
Wyjście przeglądarki powyższego kodu:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Przykład 2
Konwersja podwójnych cudzysłów na entuty HTML:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // Konwersja podwójnych i pojedynczych cudzysłów ?>
Wyjście HTML powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> Kocham "PHP". </body> </html>
Wyjście przeglądarki powyższego kodu:
Kocham "PHP".