(PHP 4, PHP 5)
htmlspecialchars — Converte i caratteri speciali in entità HTML
$string
[, int $quote_style
[, string $charset
]] )Alcuni caratteri hanno significati particolari in HTML, e, per questo, devono essere rappresentati tramite entità HTML, se devono mantenere il proprio significato. Questa funzione restituisce restituisce una stringa con la conversione di alcuni di questi caratteri; la conversione svolta non è sempre valida nell'ambito della programmazione web. Se occorre l'utilizzo di tutte le entità HTML, utilizzare htmlentities().
Questa funzione è utile nel prevenire la presenza di marcatori
HTML negli input utente, tipo nei forum o nei guest book.
Il secondo parametro quote_style
, opzionale,
indica alla funzione come comportarsi con gli apici singoli e doppi.
La modalità di default è, ENT_COMPAT
; questa modalità è compatibile con il passato
e traduce solo gli apici doppi lasciando inalterati gli apici singoli.
Se si imposta ENT_QUOTES
, entrambi i tipi di apici, singoli e doppi,
sono convertiti in entità e, infine, se si utilizza ENT_NOQUOTES
ne gli apici singoli
ne gli apici doppi sono convertiti in entità.
La conversioni applicate sono:
ENT_NOQUOTES
is not set.
ENT_QUOTES
.
Example #1 Esempio di uso di htmlspecialchars()
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
Occorre notare che questa funzione non converte null'altro oltre ai caratteri elencati in precedenza. Per la conversione di tutte le entità fare riferimento a htmlentities(). Il secondo parametro è stato inserito in PHP 3.0.17 e 4.0.3.
Il terzo parametro charset
indica quale set di caratteri utilizzare
nella conversione. Il set di caratteri di default è ISO-8859-1. Questo terzo
parametro è stato aggiunto in PHP 4.1.0.
Elenco dei set di caratteri supportati:
Set di caratteri | Alias | Descrizione |
---|---|---|
ISO-8859-1 | ISO8859-1 | Western European, Latin-1. |
ISO-8859-5 | ISO8859-5 | Il charset cirillico poco utilizzato (Latin/Cyrillic). |
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Con in più il simbolo dell'Euro e i caratteri francesi e finnici mancanti in Latin-1 (ISO-8859-1). |
UTF-8 | Set ASCII compatibile con il set multi-byte Unicode su 8-bit. | |
cp866 | ibm866, 866 | Set di caratteri cirillico specifico del Dos. |
cp1251 | Windows-1251, win-1251, 1251 | Set di caratteri cirillico specifico di Windows. |
cp1252 | Windows-1252, 1252 | Set di caratteri specifico di Windows per l'Europa occidentale. |
KOI8-R | koi8-ru, koi8r | Russo. |
BIG5 | 950 | Cinese tradizionale, usato principalmente a Taiwan. |
GB2312 | 936 | Cinese semplificato, set di caratteri nazionale standard. |
BIG5-HKSCS | Big5 con estensioni per Hong Kong, cinese tradizionale. | |
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Giapponese. |
EUC-JP | EUCJP, eucJP-win | Giapponese. |
MacRoman | Charset che veniva utilizzato dal Mac OS. | |
'' | Una stringa vuota attiva il rilevamento della codifica dallo script (Zend multibyte), default_charset e l'attuale locale (guarda nl_langinfo() e setlocale()), in quest'ordine. Non consigliato. |
Nota: Ogni altro set di caratteri non è riconosciuto. Sarà invece utilizzata la codifica predefinita e verrà mostrato un avviso.
Vedere anche get_html_translation_table(), strip_tags(), htmlentities() e nl2br().