Funkcja PHP htmlentities()
Przykład
Konwertuj znaki na HTML-owe znaki specjalne:
<?php $str = "<? W3S?h????>"; echo htmlentities($str); ?>
Wyjście HTML dla powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> <© W3Sçh°°¦§> </body> </html>
Wyjście przeglądarki dla powyższego kodu:
<? W3S?h????>
Definicja i użycie
funkcji htmlentities() do przekształcenia znaków na HTML entity.
Wskazówka:Aby przekształcić HTML entity na znak, użyj html_entity_decode() funkcji.
Wskazówka:Użyj get_html_translation_table() Funkcja zwracająca tabelę tłumaczeń używaną przez funkcję htmlentities().
Gramatyka
htmlentities(string,flags,character-set,double_encode)
Parametry | Opis |
---|---|
string | Wymagane. Określa ciąg znaków do przekształcenia. |
flags |
Opcjonalne. Określa sposób przetwarzania znaków cudzysłów, niewłaściwych kodów oraz używaną typologię dokumentu. Dostępne typy znaków cudzysłów:
Niewłaściwe kody:
Dodatkowe flagi określające używaną typologię dokumentu:
|
character-set |
Opcjonalne. ciąg znaków określający używaną kodową. Dozwolone wartości:
Komentarz:W wersjach PHP 5.4 i wcześniejszych, niezidentyfikowane zestawy znaków są ignorowane i zastępowane przez ISO-8859-1. Od PHP 5.4, niezidentyfikowane zestawy znaków są ignorowane i zastępowane przez UTF-8. |
double_encode |
Opcjonalnie. Wartość logiczna, określa, czy kodować istniejące HTML-owe znaki specjalne.
|
Szczegółowe informacje techniczne
Zwracana wartość: |
Zwraca przekształcony ciąg liter. Jeśli string Jeśli zawiera niewłaściwe kodowanie, zwraca pustą ciąg liter, 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
Konwertuj znaki na HTML-owe znaki specjalne:
<?php $str = "Bill & 'Steve'"; echo htmlentities($str, ENT_COMPAT); // Konwertuje tylko podwójne cudzysłów echo "<br>"; echo htmlentities($str, ENT_QUOTES); // Konwertuje podwójne i pojedyncze cudzysłów echo "<br>"; echo htmlentities($str, ENT_NOQUOTES); // Nie konwertuje żadnych cudzysłów ?>
Wyjście HTML dla powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Tarzan'<br> Bill & 'Steve' </body> </html>
Wyjście przeglądarki dla powyższego kodu:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Przykład 2
Przy użyciu zestawu znaków Zachodnia Europa, przekształca niektóre znaki w entuty HTML:
<?php $str = "My name is Øyvind Øsane. I'm Norwegian."; echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Konwertuje tylko cudzysłów podwójny (nie pojedynczy), i używa zestawu znaków Zachodnia Europa ?>
Wyjście HTML dla powyższego kodu wygląda tak (zobacz kod źródłowy):
<!DOCTYPE html> <html> <body> Moje imię to Øyvind Øsane. Jestem Norwegiem. </body> </html>
Wyjście przeglądarki dla powyższego kodu:
Moje imię to Øyvind Øsane. Jestem Norwegiem.