PHP modul de a elimina etichetele HTML din text

Verificarea și procesarea datelor de intrare este una dintre cele mai frecvente probleme în programare. limbajul PHP este utilizat în mod obișnuit pentru aplicații web, astfel încât există îndepărtarea cea mai urgentă de tag-uri HTML în text, deoarece acestea sunt cele mai expuse in afara de injectare. În acest articol, vreau să vă amintesc de un vechi stip_tags om () și chips-uri, precum și de a oferi soluții pentru a elimina secțiunea de tag-uri HTML, și câteva bonusuri mai utile după.

Și așa. Instrumentul nostru principal pentru a elimina etichetele HTML din textul unei strip_tags function (). Am trece o valoare șir, și elimină orice tag-uri HTML și PHP, de exemplu:

Acest exemplu va ieșire:

Para. Un alt text.

Este de remarcat aici este faptul că funcția este disponibilă, iar al doilea (opțional, dar de ajutor) parametru a cărui valoare este un șir de caractere, cu o listă de tag-uri HTML permise, cum ar fi:

Acest exemplu va ieșire:

Para.

un alt text.

În opinia mea, este foarte convenabil. Cu toate acestea, acest lucru nu rezolvă o problemă majoră - eliminarea secțiunii de tag-uri HTML. de exemplu: script. NoScript și stil - acestea sunt cele mai frecvente. Când am nevoie pentru a elimina aceste etichete, secționată și opțiuni care încep cu " <» и заканчивающиеся символом «> „Sunt folosind urmatorul cod PHP:

Aici, variabila $ p conține o serie de expresii regulate, și $ r - matrice corespunzătoare pentru a le înlocui (I folosiți spații). Rămâne doar să dețină un șir de caractere de înlocuire, și vom elimina resturile din textul HTML.

Este evident că redusă de mai sus două soluții pot fi combinate. La început, eu folosesc înlocuirea prin expresii regulate, și apoi strip_tags () și am obține o funcție diferită nohtml ().

În cele din urmă, aș dori să vă oferim câteva soluții utile. Deci, în text ar trebui să fie înlocuită cu o filă goală, rezultatul interpretării cele două sunt identice în browser-ul, iar problema va fi mai puțin, de exemplu:

$ S = str_replace ( "\ t", "", $ s);

Dacă nu aveți nevoie de pauze de linie, ele pot fi, de asemenea, înlocuite cu spații, de exemplu:

$ S = str_replace (array ( "\ n" "\ r"), "", $ s);

Din spații suplimentare pot fi eliminate printr-o expresie regulată simplă, de exemplu:

$ S = preg_replace ( "/ \ s + /", '', $ s);
$ S = asieta ($ s); // nu va fi de prisos

Pe aceasta am totul. Vă mulțumesc pentru atenție. Mult noroc!