Forum und email

htmlspecialchars

(PHP 4, PHP 5)

htmlspecialchars — Converte i caratteri speciali in entità HTML

Descrizione

string htmlspecialchars ( string $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:

  • '&' (e commerciale) diventa '&'
  • '"' (doppio apice) diventa '"' con ENT_NOQUOTES is not set.
  • ''' (singolo apice) diventa ''' soltanto con l'impostazione di ENT_QUOTES.
  • '<' (minore) diventa '&lt;'
  • '>' (maggiore) diventa '&gt;'

Example#1 Esempio di uso di htmlspecialchars()

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

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 dal PHP 4.3.0 e successivi.

set di caratteri supportati
Set di caratteri Alias Descrizione
ISO-8859-1 ISO8859-1 Western European, Latin-1
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 ASCIIcanti 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. Supportato dalla 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Set di caratteri cirillico specifico di Windows, Supportato dalla 4.3.2.
cp1252 Windows-1252, 1252 Set di caratteri specifico di Windows per l'Europa occidentale.
KOI8-R koi8-ru, koi8r Russo. Supportato dalla 4.3.2.
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, 932 Giapponese.
EUC-JP EUCJP Giapponese.

Nota: Ogni altro set di caratteri non è riconosciuto e sarà sostituito con con il set ISO-8859-1.

Vedere anche get_html_translation_table(), strip_tags(), htmlentities() e nl2br().