Preg_match_all funksiýasy
preg_match_all funksiýasy şablon üçin setirde global gözleg amala aşyrýar. Birinji parametre regulýar ifade, ikinji parametre gözleg üçin setir, üçünji parametre netijeleri saklamak üçin massiwdir. Dördünji hökmany däl parametre gaýtarylýan strukturanynyň tipini, bäşinji hökmany däl parametre bolsa gözlegiň başlangyç süwümlenmesini kesgitleýär.
Sintaksis
preg_match_all(pattern, subject, matches, [flags], [offset]);
Flaglary
Dördünji parametriň haýsy bahalary kabul edip bilýändigine seredeli:
| Parametr | Düşündiriş |
|---|---|
PREG_PATTERN_ORDER |
Bellenen re mode. Netijeler gapjyk (karman) boýunça toparlanylýar - massiwiň nol element nol gapjyg (karmany) öz içine alýar, bir element massiw birinji gapjyg (karmany) öz içine alýar we ş.m. |
PREG_SET_ORDER |
Netijeler gabat gelme (degishlilik) boýunça toparlanylýar - massifiň her elementi tapylan gapjyg (karman) massiwini öz içine alýar. |
PREG_OFFSET_CAPTURE |
Her bir gabat gelme (degishlilik) üçin setirdeki pozisiýa gaýtarylýar. Her netije massiw bolup, onuň nol elementi gabat gelmegi (degishliligi), birinji elementi bolsa onuň süwümlenmesini (ofsetini) öz içine alýar. |
PREG_UNMATCHED_AS_NULL |
Gabat gelmeýän (degishmeyän) gapjyk (karmanlar) boş setirleriň ýerine
null hökmünde gaýtarylýar.
|
Mysal
Setirdäki ähli sanlary tapalyň:
<?php
$str = 'abc 123 def 456';
preg_match_all('/\d+/', $str, $res);
var_dump($res[0]);
?>
Kod işlenilenden soňky netije:
['123', '456']
Mysal
Setirdäki ähli 'a' harpyny tapalyň:
<?php
$str = 'banana';
preg_match_all('/a/', $str, $res);
var_dump($res[0]);
?>
Kod işlenilenden soňky netije:
['a', 'a', 'a']
Mysal
Setirden ähli wagtyň belliklerini we olaryň komponentlerini çykaralyň:
<?php
$time = '12:01:02 13:03:04 14:05:06';
preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res);
var_dump($res);
?>
Kod işlenilenden soňky netije:
[
0 => ['12:01:02', '13:03:04', '14:05:06'],
1 => ['12', '13', '14'],
2 => ['01', '03', '05'],
3 => ['02', '04', '06']
]
Mysal
Indi bolsa gabat gelmeler (degishlilikler) boýunça toparlamak üçin
PREG_SET_ORDER flagyny ulanayň:
<?php
$time = '12:01:02 13:03:04 14:05:06';
preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER);
var_dump($res);
?>
Kod işlenilenden soňky netije:
[
0 => '12:01:02',
1 => '12',
2 => '01',
3 => '02'
],
[
0 => '13:03:04',
1 => '13',
2 => '03',
3 => '04'
],
[
0 => '14:05:06',
1 => '14',
2 => '05',
3 => '06'
]
Şeýle-de görüň
-
preg_matchfunksiýasy,
regulýar ifadäniň ilkinji gabat gelmesini (degishliligini) gözleýär -
preg_replacefunksiýasy,
regulýar ifadäniň boýunça gözleg we çalyşma amala aşyrýar