preg_match_all() er en innebygd funksjon i PHP som brukes til å matche det spesifikke mønsteret i en streng. Du kan bruke denne funksjonen til å utføre samsvar med regulære uttrykk og trekke ut data fra strenger. Det kan spare tid og krefter i tilfeller der du trenger å søke etter flere forekomster av et mønster, og er mye brukt i tekstparsing og dataekstraksjonsapplikasjoner av PHP.
Syntaks
Følgende er syntaksen for bruk av preg_match_all i PHP:
preg_match_all ( mønster , input , fyrstikker , flagg , offset )
De preg_match_all godtar følgende parametere, tre er obligatoriske parametere og to er valgfrie:
- mønster : Det er den obligatoriske parameteren; den inneholder det regulære uttrykket som må søkes i.
- input : Den andre er også en obligatorisk parameter, da det er strengen som søket utføres i.
- fyrstikker : Den lagrer utdataene i matrisen som inneholder alle samsvarene.
- flagg : Den beskriver hvordan søket eller treff-matrisen er strukturert. Det endrer oppførselen til søket etter funksjon. Følgende flagg kan brukes:
- offset : Det er den valgfrie parameteren som spesifiserer startposisjonen for søket.
Flagg | Beskrivelse |
---|---|
PREG_PATTERN_ORDER | Den resulterende matrisen har alle samsvarene til en matrise for hvert element i det regulære uttrykket. |
PREG_SET_ORDER | Match-matrisens elementer inneholder hver samsvar fra hver gruppering for en av strengens funnet samsvar. |
PREG_OFFSET_CAPTURE | Den returnerer samsvarene med deres tilsvarende byte-forskyvningsposisjoner i emnestrengen. |
PREG_UNMATCHED_AS_NULL | De umatchede mønstrene vil rapportere som NULL. |
Eksempel 1
Tenk på følgende eksempel på bruk av preg_match_all() funksjon i PHP. I denne koden søker vi etter ordet Linux i strengen. Denne funksjonen gir ut antall treff funnet mot ordet Linux :
$string = 'Hei Linux-entusiaster, Velkommen til LinuxHint!' ;
$mønster = '/Linux/' ;
$kamper = array ( ) ;
preg_match_all ( $mønster , $string , $kamper ) ;
print_r ( $kamper [ 0 ] ) ;
?>
Eksempel 2
I denne eksempelkoden søker vi etter ordet E i strengen. Den lille i-en brukes til å gjøre søket ufølsomt for store og små bokstaver. Det vil returnere alle strengforekomstene av ordet E eller e:
$string = 'VELKOMMEN TIL USA.' ;
$patternRex = '/E/i' ;
$matchFound = preg_match_all ( $patternRex , $string , $kamper ) ;
hvis ( $matchFound ) {
ekko «
print_r ( $kamper ) ;
}
?>
Eksempel 3
Hvis mønsteret du søker etter ikke er til stede i strengen, vil funksjonen returnere false, noe som indikerer en feil. For å håndtere dette kan du bruke if-else-setninger. Hvis mønsteret ikke blir funnet, kan du skrive ut en melding ved å bruke else-erklæringen for å informere brukeren om at mønsteret ikke ble funnet.
$string = 'PHP er et populært skriptspråk' ;
$patternRex = '/tisse/' ;
$matchFound = preg_match_all ( $patternRex , $string , $kamper ) ;
hvis ( $matchFound ) {
ekko «
ekko 'Match funnet.' ;
print_r ( $kamper ) ;
} ellers {
ekko 'Ingen treff funnet.' ;
}
?>
Merk : Den taggen i koden ovenfor brukes til å formatere utdataene.
Bunnlinjen
Regulære uttrykk er et kraftig verktøy for å søke og manipulere tekst i PHP. De preg_match_all() function er en innebygd PHP-funksjon som brukes til å utføre et regulært uttrykksmatch mot en streng og hente alle forekomster av mønsteret, og hvis mønsteret ikke eksisterer, vil det returnere false. Å forstå preg_match_all() funksjonen vil hjelpe brukere til å bedre håndtere og behandle tekstdata i PHP.