Home > PHP > Eliminare Tag HTML in una stringa

Eliminare Tag HTML in una stringa

November 23rd, 2009 Logan Leave a comment Go to comments

Spesso succede che ci troviamo nella condizione di dover filtrare le stringhe che si ricevono attraverso degli input in modo tale che queste non contengano al loro interno del codice dannoso.
Una delle solite soluzione è l’utilizzo di espressioni regolari che servono a filtrare i caratteri speciali HTML in modo tale che questi possano essere eliminati.
Tuttavia usare le espressioni regolari implica il saperle consocere non che, alle volte, si rende necessario abilitare l’HTML solamente per alcune specifiche tag.
Tutto questo richiederebbe un lavoro non indifferente di filtraggio che può essere svolto attraverso la praticissima funzione massa a disposizione da PHP, parliamo di strip_tags.

Vediamo un esempio:

Supponiamo di avere una stringa e di questa volessimo rendere disponibili per HTML solamente alcuni comandi. per farlo dovremmo quindi impostare un filtro.
La stringa che verrà quindi filtrata, vedrà essere eliminati tutti quei tag HTML che non rientrano nel filtro dei consentiti.

Ad esempio se volessimo che gli unici tag utilizzabili fossero:

<font><img><p><b><i><u><li><ul><br>

Dovremmo fare così:

$Testo=strip_tags($Testo,'<font><img><p><b><i><u><li><ul><br>');

Che significa: sulla stringa contenuta in testo, elimina tutti i TAG HTML che non siano quelli forniti come parametro.

Se applicassimo questo comando PHP ad una stringa come in questo esempio:

$Testo="<font color='#444000'>Ciao mondo</font><br><br><img src='http://www.zengfx.net/signage/Mila_Kunis_Sign_by_LoganDTR.jpg' /> <br><a href='blog.zengfx.net'>blog</a>";
$Testo=strip_tags($Testo,'<font><img><p><b><i><u><li><ul><br>');
echo $Testo;

Il risultato sarà esattamente la stringa offerta in HTML meno il link al blog contenuto nel tag a che sarà rimosso lasciando solo la scritta semplice “blog”.

  1. No comments yet.
  1. No trackbacks yet.