Section Artikel
Definisi dan Penggunaan
Fungsi preg_match_all() digunakan untuk mengembalikan jumlah kecocokan pola yang ditemukan dalam string dan mengisi variabel dengan kecocokan yang ditemukan.
Syntax
preg_match_all(pattern, input, matches, flags, offset)
Nilai Parameter
| Parameter | Description |
|---|---|
| pattern | Required. Berisi ekspresi reguler yang menunjukkan apa yang harus dicari |
| input | Required. String tempat pencarian akan dilakukan |
| matches | Optional. Variabel yang digunakan dalam parameter ini akan diisi dengan array yang berisi semua kecocokan yang ditemukan |
| flags | Optional. Seperangkat opsi yang mengubah bagaimana array matches disusun. Salah satu dari struktur berikut dapat dipilih: PREG_PATTERN_ORDER – Default. Setiap elemen dalam larik kecocokan adalah kecocokan array dari pengelompokan yang sama dalam ekspresi reguler, dengan indeks 0 terkait dengan kecocokan seluruh ekspresi dan indeks yang tersisa untuk kecocokan subpola. PREG_SET_ORDER – Setiap elemen dalam kecocokan array yang berisi kecocokan dari semua pengelompokan untuk salah satu kecocokan yang ditemukan dalam string. Sejumlah opsi berikut dapat diterapkan: PREG_OFFSET_CAPTURE – Jika opsi ini diaktifkan, setiap kecocokan, alih-alih string, akan menjadi array di mana elemen pertama adalah substring yang berisi kecocokan dan elemen kedua adalah posisi karakter pertama substring di input. PREG_UNMATCHED_AS_NULL – Jika opsi ini diaktifkan, subpola yang tidak cocok akan dikembalikan sebagai NULL, bukan sebagai string kosong. |
| offset | Optional. Default-nya 0. Menunjukkan seberapa jauh ke dalam string untuk mulai mencari. Fungsi preg_match() tidak akan menemukan kecocokan yang terjadi sebelum posisi yang diberikan dalam parameter ini |
Technical Details
Detail Teknis
| Return Value: | Mengembalikan jumlah kecocokan yang ditemukan atau false jika terjadi kesalahan |
|---|---|
| PHP Version: | 4+ |
| Changelog: | PHP 7.2 – Menambahkan tanda PREG_UNMATCHED_AS_NULL PHP 5.4 – Parameter matches menjadi opsional PHP 5.3.6 – Fungsi mengembalikan nilai false ketika offset lebih panjang dari panjang input PHP 5.2.2 – Subpattern bernama dapat menggunakan sintaks (?’name’) dan (?<name> ) selain sintaks sebelumnya (?P<name> ) |
Contoh 1
Temukan semua kemunculan “ain” dalam string:
<?php $str = "The rain in SPAIN falls mainly on the plains."; $pattern = "/ain/i"; if(preg_match_all($pattern, $str, $matches)) { print_r($matches); } ?> /* Output : Array ( [0] => Array ( [0] => ain [1] => AIN [2] => ain [3] => ain ) )
Contoh 2
Gunakan PREG_PATTERN_ORDER untuk menyetel struktur kecocokan array . Dalam contoh ini, setiap elemen dalam kecocokan array memiliki semua kecocokan untuk salah satu pengelompokan ekspresi reguler.
<?php
$str = "jkl JKL";
$pattern = "/((j)k)(l)/i";
if(preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER)) {
print_r($matches);
}
?>
/* Output :
Array
(
[0] => Array
(
[0] => jkl
[1] => JKL
)
[1] => Array
(
[0] => jk
[1] => JK
)
[2] => Array
(
[0] => j
[1] => J
)
[3] => Array
(
[0] => l
[1] => L
)