La funzione Htmlspecialchars
Htmlspecialchars è una funzione del linguaggio PHP.
La sintassi è molto semplice. La funzione ha un solo parametro in input posto tra parentesi tonde. In genere è una variabile stringa.
Htmlspecialchars($stringa );
A cosa serve?
Questa funzione converte i caratteri speciali di una stringa trasformandoli nei corrispondenti codici HTML.
Cosa sono i caratteri speciali?
Ad esempio i caratteri speciali <, >, ", & potrebbero causare problemi durante l'esecuzione dello script, in particolar modo se la stringa viene salvata su un database SQL.
La funzione Htmlspecialchars li converte nei codici <, >, ", &. In quest'ultima forma i caratteri non causano nessun problema.
< | < |
> | > |
" | " |
& | & |
Inoltre, quando sono visualizzati sul browser dell'utente il risultato finale è sempre lo stesso.
Un esempio pratico
In questo script assegno a una variabile una stringa contenente dei caratteri speciali.
<?
$stringa = "<testo di prova>";
$stringa = htmlspecialchars($stringa);
echo $stringa;
?>
Nella seconda riga sostituisco i caratteri speciali della stringa ( < e > ) con i codici Html corrispondenti (< al posto di < e > al posto di >).
<testo di prova>
Quando lo script visualizza a video la stringa, il risultato finale è sempre lo stesso.
<testo di prova>
Così facendo la stringa è interpretata da tutti i browser, indipendentemente dalla lingua e dal font di caratteri utilizzati dal computer client.
La funzione htmlenties()
Per omogeneizzare le stringhe è utile anche la funzione htmlenties().
Quest'ultima è molto più potente rispetto alla Htmlspecialchars, perché converte tutti i caratteri che hanno un equivalente Html.