preg_match_all() je ugrađena funkcija u PHP-u koja se koristi za podudaranje specifičnog uzorka u nizu. Ovu funkciju možete koristiti za izvođenje podudaranja regularnih izraza i izdvajanje podataka iz nizova. Može uštedjeti vrijeme i trud u slučajevima kada trebate tražiti više pojavljivanja uzorka i naširoko se koristi u aplikacijama PHP-a za analizu teksta i ekstrakciju podataka.
Sintaksa
Slijedi sintaksa za korištenje preg_match_all u PHP-u:
preg_match_all ( uzorak , ulazni , šibice , zastave , pomaknuti )
The preg_match_all prihvaća sljedeće parametre, tri su obavezna parametra, a dva su izborna:
- uzorak : To je obavezan parametar; sadrži regularni izraz koji treba pretražiti.
- ulazni : Drugi je također obavezan parametar, jer je niz u kojem se vrši pretraga.
- šibice : Pohranjuje izlaz u polje koje sadrži sve podudarnosti.
- zastave : Opisuje kako je strukturiran niz pretraživanja ili podudaranja. Modificira ponašanje pretraživanja funkcije. Mogu se koristiti sljedeće zastavice:
- pomaknuti : To je izborni parametar koji određuje početnu poziciju pretraživanja.
Zastava | Opis |
---|---|
PREG_PATTERN_ORDER | Rezultantni niz ima sva podudaranja niza za svaki element regularnog izraza. |
PREG_SET_ORDER | Svaki element niza podudaranja sadrži podudaranja iz svakog grupiranja za jedno od pronađenih podudaranja niza. |
PREG_OFFSET_CAPTURE | Vraća podudaranja s njihovim odgovarajućim pozicijama pomaka bajtova u predmetnom nizu. |
PREG_UNMATCHED_AS_NULL | Uzorci koji se ne podudaraju prijavit će se kao NULL. |
Primjer 1
Razmotrite sljedeći primjer korištenja preg_match_all() funkcija u PHP-u. U ovom kodu tražimo riječ Linux u nizu. Ova funkcija ispisuje broj pronađenih podudaranja s riječju Linux :
$string = 'Pozdrav Linux entuzijasti, dobrodošli u LinuxHint!' ;
$uzorak = '/Linux/' ;
$podudaranja = niz ( ) ;
preg_match_all ( $uzorak , $string , $podudaranja ) ;
print_r ( $podudaranja [ 0 ] ) ;
?>
Primjer 2
U ovom primjeru koda, tražimo riječ E u nizu. Malo i koristi se da pretraživanje ne razlikuje velika i mala slova. Vratit će sva pojavljivanja niza riječi E ili e:
$string = 'DOBRO DOŠLI U SAD.' ;
$patternRex = '/E/i' ;
$matchFound = preg_match_all ( $patternRex , $string , $podudaranja ) ;
ako ( $matchFound ) {
jeka '
';
print_r ( $podudaranja ) ;
}
?>
Primjer 3
Ako uzorak koji tražite nije prisutan u nizu, funkcija će vratiti false, što ukazuje na pogrešku. Da biste to riješili, možete koristiti if-else izjave. Ako uzorak nije pronađen, možete ispisati poruku pomoću naredbe else kako biste obavijestili korisnika da uzorak nije pronađen.
$string = 'PHP je popularan skriptni jezik' ;
$patternRex = '/piškiti/' ;
$matchFound = preg_match_all ( $patternRex , $string , $podudaranja ) ;
ako ( $matchFound ) {
jeka '
';
jeka 'Podudaranje pronađeno.' ;
print_r ( $podudaranja ) ;
} drugo {
jeka 'Nije pronađeno podudaranje.' ;
}
?>
Bilješka : The oznaka u gornjem kodu koristi se za formatiranje izlaza.
Poanta
Regularni izrazi moćan su alat za pretraživanje i manipuliranje tekstom u PHP-u. The preg_match_all() funkcija je ugrađena PHP funkcija koja se koristi za izvođenje podudaranja regularnog izraza s nizom i dohvaćanje svih pojavljivanja uzorka, a ako uzorak ne postoji, vratit će false. Razumijevanje preg_match_all() pomoći će korisnicima da bolje rukuju i obrađuju tekstualne podatke u PHP-u.