602 Stimmen

htmlentities() vs. htmlspecialchars()

Was sind die Unterschiede zwischen htmlspecialchars() y htmlentities() . Wann sollte ich das eine oder das andere verwenden?

18voto

grossvogel Punkte 6593

htmlspecialchars () führt ein Minimum an Kodierung durch, um sicherzustellen, dass Ihre Zeichenkette nicht als HTML geparst wird. Dadurch wird Ihre Zeichenkette besser lesbar, als wenn Sie htmlentities () um absolut alles zu kodieren, was eine Kodierung hat.

14voto

Eric Hogue Punkte 8590

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.

9voto

Joko Wandiro Punkte 1937

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:

https://gist.github.com/joko-wandiro/f5c935708d9c37d8940b

7voto

cic Punkte 7048

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.

6voto

N Randhawa Punkte 7493

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 &lt; br &gt;
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 &lt; br &gt;
echo htmlentities('µ †');             // This will print -  &micro; &dagger;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X