Was sind die Unterschiede zwischen htmlspecialchars()
y htmlentities()
. Wann sollte ich das eine oder das andere verwenden?
Antworten
Zu viele Anzeigen?Ich habe gerade von der get_html_translation_table
Funktion. Sie übergeben sie HTML_ENTITIES
o HTML_SPECIALCHARS
und gibt ein Array mit den Zeichen zurück, die kodiert werden sollen und wie sie kodiert werden sollen.
Htmlentities - Konvertiert alle zutreffenden Zeichen in HTML-Entities.
htmlspecialchars - Konvertiert Sonderzeichen in HTML-Entities.
Die Übersetzungen werden mit den unten aufgeführten Zeichen durchgeführt:
- '&' (kaufmännisches Und) wird zu '&'.
- '"' (Anführungszeichen) wird zu '"', wenn ENT_NOQUOTES nicht gesetzt ist.
- "'" (einfaches Anführungszeichen) wird nur dann zu ''' (oder '), wenn ENT_QUOTES gesetzt ist.
- '<' (weniger als) wird zu '<'.
- '>' (größer als) wird zu '>'.
Weitere Informationen über htmlentities und htmlspecialchars finden Sie im folgenden Code:
Wahrscheinlich möchten Sie eine Unicode-Zeichenkodierung verwenden, zum Beispiel UTF-8 und htmlspecialchars. Denn es gibt keine cualquier Sie müssen "HTML-Entities" für "alle [die] anwendbaren Zeichen" generieren (das ist es, was htmlentities laut der Dokumentation tut), wenn es bereits in Ihrem Zeichensatz ist.
Die Unterschiede zwischen htmlspecialchars() und htmlentities() sind sehr gering. Lassen Sie uns einige Beispiele sehen:
htmlspecialchars
htmlspecialchars(string $string) nimmt mehrere Argumente entgegen, wobei das erste Argument eine Zeichenkette ist und alle anderen Argumente (bestimmte Flags, bestimmte Kodierungen usw.) optional sind. htmlspecialchars wandelt Sonderzeichen in der Zeichenkette in HTML-Entities um. Wenn Sie zum Beispiel <br> in Ihrer Zeichenkette, htmlspecialchars wandelt es um in < b > . Zeichen wie µ, † usw. haben dagegen keine besondere Bedeutung in HTML. Sie werden also nicht in HTML-Entities umgewandelt durch htmlspecialchars Funktion wie im folgenden Beispiel gezeigt.
echo htmlspecialchars('An example <br>'); // This will print - An example < br >
echo htmlspecialchars('µ †'); // This will print - µ †
htmlentities
htmlentities ( string $string) ist sehr ähnlich zu htmlspecialchars und nimmt mehrere Argumente entgegen, wobei das erste Argument eine Zeichenkette ist und alle anderen Argumente optional sind (bestimmte Flags, bestimmte Kodierungen usw.). Anders als htmlspecialchars , htmlentities konvertiert nicht nur Sonderzeichen in der Zeichenkette in HTML-Entities, sondern alle zutreffenden Zeichen in HTML-Entities.
echo htmlentities('An example <br>'); // This will print - An example < br >
echo htmlentities('µ †'); // This will print - µ †