preg_replace_callback_array()
PHP preg_replace_callback_array() funksiyasi
Misol
Gapdagi har bir so‘zda nechta harf yoki raqam borligini ko‘rsating:
<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'letter]';
}
function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'digit]';
}
$input = "There are 365 days in a year.";
$patterns = [
'/\b[a-z]+\b/i' => 'countLetters',
'/\b[0-9]+\b/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
O‘zingiz sinab ko‘ring »
Ta’rif va qo‘llanilishi
preg_replace_callback_array() funksiyasi muntazam ifodalar to‘plamining mosliklari callback funksiyasi qaytargan qiymat bilan almashtirilgan string yoki stringlar massivini qaytaradi.
Eslatma: Har bir string uchun funksiya naqshlarni ular berilgan tartibda qo‘llaydi. Birinchi naqshni stringga qo‘llash natijasi ikkinchi naqsh uchun kirish stringi sifatida ishlatiladi va hokazo. Bu kutilmagan natijalarga olib kelishi mumkin.
Sintaksis
preg_replace_callback_array(patterns, input, limit, count)
Parametr qiymatlari
| Parametr | Tavsif |
|---|---|
| pattern | Majburiy. Muntazam ifoda naqshlarini callback funksiyalariga bog‘laydigan assotsiativ massiv. Callback funksiyalari bitta parametrga ega — mosliklar massivi. Massivning birinchi elementida butun ifodaning mosligi, qolgan elementlarida esa ifodadagi har bir guruhning mosliklari bo‘ladi. |
| input | Majburiy. Almashtirishlar bajariladigan string yoki stringlar massivi |
| limit | Ixtiyoriy. Standart qiymati -1, ya’ni cheklanmagan. Har bir stringda nechta almashtirish bajarilishi mumkinligini cheklaydi |
| count | Ixtiyoriy. Funksiya bajarilgandan so‘ng bu o‘zgaruvchida nechta almashtirish bajarilganini ko‘rsatuvchi son bo‘ladi |
Texnik tafsilotlar
| Qaytariladigan qiymat: | Kirish stringi yoki stringlariga almashtirishlarni qo‘llash natijasida hosil bo‘lgan string yoki stringlar massivini qaytaradi |
|---|---|
| PHP versiyasi: | 7+ |
Ko‘proq misollar
Misol
Bu misol naqshlarning ketma-ket qo‘llanishi kutilmagan natijalarga olib kelishi mumkinligini ko‘rsatadi. Avval countLetters almashtiruvi "days" so‘ziga "[4letter]" qo‘shadi, bu almashtirish bajarilgandan keyin esa countDigits almashtiruvi "4letter" ichidagi "4" ni topib, unga "[1digit]" qo‘shadi:
<?php
function countLetters($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'letter]';
}
function countDigits($matches) {
return $matches[0] . '[' . strlen($matches[0]) . 'digit]';
}
$input = "365 days";
$patterns = [
'/[a-z]+/i' => 'countLetters',
'/[0-9]+/' => 'countDigits'
];
$result = preg_replace_callback_array($patterns, $input);
echo $result;
?>
O‘zingiz sinab ko‘ring »
❮ PHP RegEx ma’lumotnomasi
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
