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);
?>

The HTML output of the above code is as follows (view source code):

<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>

Browser output of the above code:

This is some <b>bold</b> text.

Run Instance

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 >

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:

  • ENT_COMPAT - Default. Encode double quotes only.
  • ENT_QUOTES - Encode both double and single quotes.
  • ENT_NOQUOTES - Do not encode any quotes.

Invalid encoding:

  • ENT_IGNORE - Ignore invalid encoding rather than returning an empty string from the function. It should be avoided as it may have security implications.
  • ENT_SUBSTITUTE - Substitute invalid encoding with a specified character that has the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;, rather than returning an empty string.
  • ENT_DISALLOWED - Substitute invalid code points in the specified document type with the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;.

Επιπλέον σημάδια για τον καθορισμό του τύπου εγγράφου που χρησιμοποιείται:

  • ENT_HTML401 - Προεπιλεγμένο. Χειρίζεται τον κώδικα ως HTML 4.01.
  • ENT_HTML5 - Χειρίζεται τον κώδικα ως HTML 5.
  • ENT_XML1 - Χειρίζεται τον κώδικα ως XML 1.
  • ENT_XHTML - Χειρίζεται τον κώδικα ως XHTML.
character-set

Επιλογή. Μια αλφαβητική αλυσίδα που καθορίζει την κωδικοποίηση που θα χρησιμοποιηθεί.

Επιτρεπόμενες τιμές:

  • UTF-8 - Προεπιλεγμένο. ASCII συμβατό 8-bit Unicode multi-byte
  • ISO-8859-1 - Δυτική Ευρώπη
  • ISO-8859-15 - Δυτική Ευρώπη (προστέθηκε το σύμβολο ευρώ + τα χαρακτήρες που λείπουν από το ISO-8859-1 για τη γλώσσα γαλλική και τη γλώσσα φινλανδική)
  • cp866 - Κωδικοποίηση χαρακτήρων για το DOS, προσαρμοσμένη για τα Cyrillic
  • cp1251 - Κωδικοποίηση χαρακτήρων για το Windows, προσαρμοσμένη για τα Cyrillic
  • cp1252 - Κωδικοποίηση χαρακτήρων για το Windows, προσαρμοσμένη για την δυτική Ευρώπη
  • KOI8-R - Ρωσικά
  • BIG5 - Κινέζικη συμφωνική, κύρια χρήση στην Ταϊβάν
  • GB2312 - Κινέζικη απλοποιημένη, κρατική κωδικοποίηση χαρακτήρων
  • BIG5-HKSCS - Big5 με επέκταση για την Κίνα Χονγκ Κονγκ
  • Shift_JIS - Ιαπωνικά
  • EUC-JP - Ιαπωνικά
  • MacRoman - Κωδικοποίηση χαρακτήρων που χρησιμοποιείται στο Mac λειτουργικό σύστημα

Σημειώσεις:Στις εκδόσεις του PHP πριν από το 5.4, τα χαρακτήρες που δεν μπορούν να αναγνωριστούν θα αγνοηθούν και θα αντικατασταθούν από το ISO-8859-1. Από το PHP 5.4 και μετά, τα χαρακτήρες που δεν μπορούν να αναγνωριστούν θα αγνοηθούν και θα αντικατασταθούν από το UTF-8.

double_encode

Επιλογή. Μια μορφή μπλοκ που καθορίζει αν θα κωδικοποιηθούν οι υπάρχουσες HTML εικονικές οντότητες.

  • TRUE - Προεπιλεγμένο. Μετατρέπει κάθε εικονική οντότητα.
  • FALSE - Δεν κωδικοποιεί τις υπάρχουσες HTML εικονικές οντότητες.

Τεχνικά λεπτομέρειες

Επιστροφή τιμής:

Επιστρέφει την μετατρεπόμενη αλφαβητική αλυσίδα.

Αν string Αν περιέχεις μη έγκυρη κωδικοποίηση, επιστρέφει μια κενή αλφαβητική αλυσίδα, εκτός αν έχει οριστεί το σημάτι ENT_IGNORE ή ENT_SUBSTITUTE.

Εκδοχή PHP: 4+
Η λίστα ενημερώσεων:

Σε το PHP 5,character-set Η προεπιλεγμένη τιμή του παραμέτρου άλλαξε σε UTF-8.

Σε το PHP 5.4, προστέθηκαν: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 και ENT_XHTML.

Σε το PHP 5.3, προστέθηκε το ENT_IGNORE.

Σε το PHP 5.2.3, προστέθηκε double_encode Parameters.

In PHP 4.1, the following was added: character-set Parameters.

More Examples

Example 1

Convert some predefined characters to HTML entities:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // Only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Convert double quotes and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Do not convert any quotes
?>

The HTML output of the above code is as follows (view source code):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

Browser output of the above code:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Run Instance

Example 2

Convert double quotes to HTML entities:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Convert double quotes and single quotes
?>

The HTML output of the above code is as follows (view source code):

<!DOCTYPE html>
<html>
<body>
I love "PHP"
</body>
</html>

Browser output of the above code:

I love "PHP".

Run Instance