Originariamente inviato da oly1982
bhè e con
[img]banner_news.jpg[/img]" />

con htmlspecialchar() gli apici e le virgolette come sono trattate?

-----------------
strip_tags() è una funzione che non mi è mai piaciuta dato che la vedo troppo radicale...
htmlspecialchars() non la uso quasi mai preferendo ad essa htmlentities() (anche in virtù che spesso mi serve per immunizzare apici e virgolette... ad esempio per inserire valori in un form destinato all'update...).

Forse sbaglierò ma io personalmente con htmlentites() per le stringhe destinate alla stampa mi trovo bene e soprattutto non capisco le controindicazioni al suo uso
Come dice il manuale, htmlspecialchars() trasforma i seguenti caratteri:
&
<
>
'
"
quindi per quanto riguarda tag e virgolette non ci sono problemi.

strip_tags() ha un utilizzo specifico, non e' troppo drastica in se', dipende da cosa devi fare. Ci sono casi in cui magari vuoi permettere l'input di ALCUNI tag (magari strong e em, giusto per un minimo di formattazione) ed eliminare tutti gli altri. In quel caso ti serve strip_tags(), non puoi selezionare i tag con htmlspecialchars() o htmlentities().

Per quanto riguarda htmlentities() contro htmlspecialchars() forse preferisci la prima perche' non sai cosa fa la seconda

Comunque non e' che htmlentities() in se' ha delle controindicazioni, solo che va usata quando davvero serve (magari codificare dati per essere trasferiti tramite protocolli che supportano solo 7 bit? boh casi del genere). Per stampare correttamente testo internazionale la soluzione migliore e' usare UTF8, che e' una codifica che permette di rappresentare ogni code point dell'intero set Unicode. htmlentities() usata solo per le accentate e' una soluzione che all'atto pratico funziona, ma e' concettualmente sbagliata perche' ti costringe ad eseguire un'operazione ogni volta che devi stampare del testo, il che e' superfluo visto che puoi farlo direttamente aggiustando il charset. E' un po' come usare l'output buffering per risolvere "HEADERS ALREADY SENT", e' una pezza ma dimostra che non hai capito la fonte del problema.