Home > PHP > Filtriranje sadržaja PHP promenljive

Filtriranje sadržaja PHP promenljive

april 28th, 2013 Leave a comment Go to comments

PHP funkcija filter_var() se prvi put pojavljuje u okviru PHP 5.2.0 i tiče se filtriranja sadržaja u okviru promenljive. Detaljnije o funkciji možete pročitati ovde. U pitanju je funkcija koja će izvršiti kontrolu da li je sadržaj ispravno unet i preduzeti odgovarajuću akciju u zavisnosti od opcija koje ste definisali.

mixed filter_var(mixed $variable[,int $filter=FILTER_DEFAULT[,mixed $options]])

Funkcija prihvata 3 parametra. Prvi je tekst koji želite da kontrolišete, drugi je filter koji primenjujete, a treći su opcije koje dodatno opisuju filter koji primenjujete.

Postoji 4 tipa filtera:

  • Filteri provere
  • Filteri za saniranje
  • Ostali filteri
  • Markeri filtera

Filteri provere

Ovo su filter koji proveravaju da li je uneti tekst stvarno ono što i očekujete da bude. Tu spadaju:

  • FILTER_VALIDATE_BOOLEAN – proverava da li je uneta vrednost logička i vraća TRUE ukoliko je vrednost „1“, „true“, „on“, „yes“. U suprotnom vraća FALSE. (ovo je zgodno za proveru vrednosti koje se prosleđuje checkbox u okviru ExtJS framework-a )
  • FILTER_VALIDATE_FLOAT – proverava da li je uneta vrednost realan broj
  • FILTER_VALIDATE_INT – proverava da li je uneta vrednost ceo broj. Prihvata i opcione parametre za minimalnu i maksimalnu vrednost
  • FILTER_VALIDATE_IP – proverava da li je vrednost ispravna IP adresa. Podržavai IPv4 i IPv6
  • FILTER_VALIDATE_URL – da li je vrednost ispravan link. Kroz dodatne parametre možete definisati da li je dozvoljeno da link ima putanju (samo domen) i da li je dozvoljeno da ima parametre. Kroz kasnije verzije bi trebalo da bude podržano i dtip protokola (ssh, mailto…)
  • FILTER_VALIDATE_EMAIL – da li je vrednost ispravna e-mail adresa
  • FILTER_VALIDATE_REGEXP – potvrđuje da li je vrednost ispravan regularan izraz.

Neki od ovih filtera biće implementirani u okviru nove verzije CodeIgniter framework-a (v3) što će dodatno uticati na njegovu brzinu.

Filteri za saniranje

U pitanju su filteri koji ne vraćaju samo vrednost da li je sadržaj ispravan ili ne u zavisnosti od filtera, već i vrše dodatnu akciju u cilju njegovog adaptiranja kako bi postao ispravan. Tu spadaju:

  • FILTER_SANITIZE_EMAIL – uklanja sve znakove osim slova, brojeva i znakova !#$%&“*+-/=?^_`{|}~@.[]
  • FILTER_SANITIZE_ENCODED – url kriptovani tekst, opcioni briše specijalne karaktere
  • FILTER_SANITIZE_MAGIC_QUOTES – primenjuje funkciju addslashes()
  • FILTER_SANITIZE_NUMBER_FLOAT – uklanja sve karaktere osim +- i opcioni ., i naravno brojeva
  • FILTER_SANITIZE_NUMBER_INT – uklanja sve karaktere osim brojeva i +-
  • FILTER_SANITIZE_SPECIAL_CHARS – HTML karakteri ‘“<> & i karakteri sa ASCII vrednošću manjom od 32 , mogu biti izbačeni ili promenjeni u druge karaktere
  • FILTER_SANITIZE_FULL_SPECIAL_CHARS – ekvivalent komandi htmlslecialchars() sa s
  • FILTER_SANITIZE_STRING – briše sve tagove, a opciono briše ili kodira specijalne karaktere
  • FILTER_SANITIZE_STRIPPED – alijas prethodne komande
  • FILTER_SANITIZE_URL – uklanja sve karaktere osim slova, brojeva i $-_.+!*“(),{}|\\\\^~[]`<>#%“;/?:@&=
  • FILTER_UNSAFE_RAW – ne radi ništa, a opciono može da ukloni ili kodira specijalne karaktere

Ostali filteri

Ukoliko želite da kreirate svoju funkciju za filtriranje, ovo je odeljak za vas. Kao filter se unosi FILTER_CALLBACK, a kao dodatna opcija se navodi funkcija koja će izvršiti filtriranje/validaciju.

Markeri filter

Ovo su markeri koje možete koristiti kao opcioni treći parametar. Detaljnu listu možete pogledati ovde.

Ovo je samo uvod u mogućnosti koja ova funkcija pruža. Za više informacija pogledajte opis funkcije u okviru zvanične dokumentacije.

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