Forum und email

htmlspecialchars

(PHP 4, PHP 5)

htmlspecialchars — Μετατρέψτε τους ειδικούς χαρακτήρες σε HTML αντικείμενα

Περιγραφή

string htmlspecialchars ( string $string [, int $quote_style [, string $charset ]] )

Κάποιοι χαρακτήρες έχουν μία ιδιαίτερη σημασία στην HTML, και θα έπρεπε να αναπαρίστανται από αντικείμενα της HTML προκειμένου να διατηρήσουν τη σημασία αυτή. Η συνάρτηση αυτή επιστρέφει ένα string, το οποίο έχει κάποιες από τις μετατροπές υλοποιημένες. Αυτές οι μεταφράσεις είναι οι πιο χρήσιμες που γίνοννται κάθε μέρα στο web programming. Εάν επιθυμείτε να μεταφραστούν όλα τα αντικείμενα HTML τότε χρησιμοποιείστε τη συνάρτηση htmlentities().

Η συνάρτηση αυτή χρησιμεύει στη μη ύπαρξη HTML markup σε φόρμες κειμένου, όπως συμβαίνει στις εφαρμογές του πινάκα μηνυμάτων και του βιβλίου επισκεπτών. Το προαιρετικό δεύτερο όρισμα, quote_style , ορίζει το τι θα κάνει η συνάρτηση με τους χαρακτήρες των απλών και διπλών εισαγωγικών. Η προκαθορισμένη λειτουργία, ENT_COMPAT, είναι μία προς τα πίσω συμβατή λειτουργία, η οποία μεταφράζει μόνο το χαρακτήρα διπλών εισαγωγικών, αφήνοντας τα απλά εισαγωγικά αμετάφραστα. Εάν επιλεγεί η ENT_QUOTES, και τα δύο είδη εισαγωγικών θα μεταφραστούν, ενώ στην περίπτωση της ENT_NOQUOTES δεν πρόκειται να μεταφραστεί κανένα είδος εισαγωγικού.

Οι μεταφράσεις που υλοποιούνται είναι οι ακόλουθες:

  • '&' ("και" καλλιγραφικό) γίνεται '&'
  • '"' (διπλά εισαγωγικά) γίνεται '"' όταν δεν έχει τεθεί η ENT_NOQUOTES.
  • ''' (απλά εισαγωγικά) γίνεται ''' μόνο όταν έχει τεθεί η ENT_QUOTES.
  • '<' (μικρότερο από) γίνεται '&lt;'
  • '>' (μεγαλύτερο από) γίνεται '&gt;'

Example#1 Παράδειγμα της htmlspecialchars()

<?php
$new 
htmlspecialchars("<a href='test'>Test</a>"ENT_QUOTES);
echo 
$new// &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Παρατηρείστε ότι αυτή η συνάρτηση δε μεταφράζει κάτι άλλο εκτός αυτών που προαναφέρθηκαν. Για πλήρη μετάφραση οντοτήτων ανατρέξτε στη συνάρτηση htmlentities(). Η υποστήρηξη της προαιρετικής δεύτερης παραμέτρου προστέθηκε στην PHP 3.0.17 και την PHP 4.0.3.

Το τρίτο όρισμα charset ορίζει το σύνολο χαρακτήρων που θα χρησιμοποιηθούν κατά τη μετατροπή. Το προκαθορισμένο σύνολο είναι το ISO-8859-1. Η υποστήριξη της τρίτης παραμέτρου προστέθηκε στην PHP 4.1.0.

Η έκδοση PHP 4.3.0 και οι νεώτερες αυτής υποστηρίζουν τα ακόλουθα σύνολα χαρακτήρων:

Υποστηριζόμενα σύνολα χαρακτήρων
Σύνολο χαρακτήρων Δεύτερη ονομασία Περιγραφή
ISO-8859-1 ISO8859-1 Western European, Latin-1
ISO-8859-15 ISO8859-15 Western European, Latin-9. Περιέχει επιπλέον το σύμβολο του Ευρώ, καθώς επίσης γαλλικά και φινλανδικά γράμματα, που δεν περιλαμβάνονται στο Latin-1(ISO-8859-1).
UTF-8   Συμβατό με ASCII, multi-byte 8-bit Unicode.
cp866 ibm866, 866 Σύνολο χαρακτήρων του DOS για ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά.
cp1251 Windows-1251, win-1251, 1251 Σύνολο χαρακτήρων των Windows για ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά.
cp1252 Windows-1252, 1252 Σύνολο χαρακτήρων των Windows για Western European.
KOI8-R koi8-ru, koi8r Ρώσικα. Αυτό το σύνολο χαρακτήρων υποστηρίζεται από την έκδοση 4.3.2 και μετά.
BIG5 950 Παραδοσιακά κινέζικα, κυρίως αυτά που χρησιμοποιούνται στην Ταϊβάν.
GB2312 936 Απλοποιημένα κινέζικα, το εθνικά χρησιμοποιούμενο σύνολο χαρακτήρων.
BIG5-HKSCS   Big5 με επεκτάσεις για το Hong Kong, παραδοσικά κινέζικα.
Shift_JIS SJIS, 932 Japanese
EUC-JP EUCJP Γιαπωνέζικα

Note: Στη θέση οποιουδήποτε συνόλου χαρακτήρων που δεν αναγνωρίζεται θα χρησιμοποιηθεί το ISO-8859-1.

Ανατρέξτε επίσης στις: get_html_translation_table(), htmlentities(), και nl2br().