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); ?>
Die HTML-Ausgabe des obigen Codes ist wie folgt (Quellcode anzeigen):
<!DOCTYPE html> <html> <body> This is some <b>bold</b> text. </body> </html>
Die Browser-Ausgabe des obigen Codes:
This is some <b>bold</b> text.
Definition and usage
The htmlspecialchars() function converts predefined characters to HTML entities.
The 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. Specify the string to be converted. |
flags |
Optional. Specify how to handle quotes, invalid encoding, and which document type to use. Available quote types:
Invalid encoding:
Zusätzliche Flags für die festgelegte Dokumentart:
|
character-set |
Optional. Eine Zeichenfolge, die den zu verwendenden Zeichensatz angibt. Zulässige Werte:
Kommentar:In Versionen von PHP 5.4 und früher werden nicht erkannte Zeichensätze ignoriert und durch ISO-8859-1 ersetzt. Ab PHP 5.4 werden nicht erkannte Zeichensätze ignoriert und durch UTF-8 ersetzt. |
double_encode |
Optional. Boolescher Wert, der angibt, ob bestehende HTML-Entitäten kodiert werden sollen.
|
Technische Details
Rückgabewert: |
Gibt die umgewandelte Zeichenfolge zurück. Wenn string Enthält eine ungültige Kodierung, wird eine leere Zeichenfolge zurückgegeben, es sei denn, das ENT_IGNORE- oder ENT_SUBSTITUTE-Symbol wurde gesetzt. |
PHP-Version: | 4+ |
Update-Protokoll: |
In PHP 5 wurde:character-set Die Standardwerte für den Parameter wurden auf UTF-8 geändert. In PHP 5.4 wurden hinzugefügt: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 und ENT_XHTML. In PHP 5.3 wurde ENT_IGNORE hinzugefügt. In PHP 5.2.3 wurde hinzugefügt: double_encode Parameter. In PHP 4.1 wurde hinzugefügt character-set Parameter. |
Mehr Beispiele
Beispiel 1
Einige vorgegebene Zeichen in HTML-Entities umwandeln:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // Nur doppelte Anführungszeichen umwandeln echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Double- und Single-Quotes umwandeln echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // Keine Anführungszeichen umwandeln ?>
Die HTML-Ausgabe des obigen Codes ist wie folgt (Quellcode anzeigen):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
Die Browser-Ausgabe des obigen Codes:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Beispiel 2
Umwandeln von doppelten Anführungszeichen in HTML-Entities:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // Double- und Single-Quotes umwandeln ?>
Die HTML-Ausgabe des obigen Codes ist wie folgt (Quellcode anzeigen):
<!DOCTYPE html> <html> <body> Ich liebe "PHP". </body> </html>
Die Browser-Ausgabe des obigen Codes:
Ich liebe "PHP".