IZRADA SAJTA za 10 €

Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa


KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA
Igrice
Slike

Funkcija preg_match

Funkcija preg_match ima sledeći prototip:

int preg_match (string $regularni_izraz, string $tekst [, array &$rezultat [, int $flags [, int $offset ]]])

Sve je lakše shvatiti na primerima. Napravimo skriptu koja proverava da li u stringu postoji osmocifreni broj. Skripta bi izgledala ovako:

$tekst = "aaa12345678";
if (preg_match("/[0-9]{8}/", $tekst)) echo "postoji";
else echo "ne postoji";

Rezultat:

postoji

E sad da je $tekst = "aaa1234a5678" rezultat bi bio netačno. Isto netačno daje na primer $tekst = "as2 123456". Tačno bi bilo i $tekst = "ase f12345678 gtr". Takodje tačan bi bio i $tekst = "1234567890" i tako dalje. Znači poenta je da funkcija traži ono što definiše regularni izraz.

Na primer ako u istoj skripti stavimo malo drugačiji regularni izraz, na primer nama poznat "/\b[0-9]{8}\b/" a sve ostalo ostane isto rezultat će biti netačno jer u ovom slučaju regularni izraz je napisan tako da traži string koji samo i jedino sadrži 8 broja, a naša promenjljiva $tekst sadrži 11 znaka. I da su svih 11 znakova brojevi opet bi skripta ispisala netačno.

Iz prototipa funkcije vidimo da ona sadrži i opcione parametre. Jedan od njih je i niz $rezultat. Na primer ajde da napravimo skriptu koja uzima iz teksta osmocifren broj ukoliko postoji.

$tekst = "aaa12345678 wwww 4356754754637823";
preg_match("/[0-9]{8}/", $tekst, $rezultat);
echo $rezultat[0];

Rezultat skripte bi bio:

12345678

Postoji i još jedan četvrti opcioni parametar u funkciji, a to je PREG_OFFSET_CAPTURE. Na primer, osim što želimo da izvučemo osmocifrene brojeve iz teksta, želimo da znamo i informaciju od kog položaja u tekstu se nalazi osmocifren broj, ukoliko se nalazi naravno:

$tekst = "aaa12345678 wwww 4356754754637823";
preg_match("/[0-9]{8}/", $tekst, $rezultat, PREG_OFFSET_CAPTURE);
echo $rezultat[0][0]."<br>".$rezultat[0][1];

Rezultat bi bio:

12345678
4

Znači u ovom slučaju pored broja kog smo tražili vraća u niz i položaj osmocifrenog broja u tekstu.

Ovde smo u preg_match koristili jednostavnije regularne izraze. Regularni izrazi mogu biti mnogo složeniji u zavisnosti od problema kog rešavamo. Neke primere složenije kao i sve vezano za funkciju možete videti ovde LINK

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija