الدالة preg_replace_callback_array()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في PHP

من موسوعة حسوب
< PHP

(PHP 7)

تبحث الدالة preg_replace_callback_array()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ عن تعبير نمطي وتستبدله باستخدام الدوال المُعرفة من المستخدم (callbacks).

الوصف

mixed preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int$limit = -1 [, int &$count ]] )

يشبه سلوك هذه الدالة سلوك الدالة preg_replace_callback()‎‎، باستثناء أنها تُنفِّذ الدوال المُعرّفة من المستخدم أساس كل نمط.

المعاملات

patterns_and_callbacks

مصفوفة مرتبطة تربط الأنماط (المفاتيح) مع الدوال المُعرّفة من المستخدم (القيم).

subject

السلسلة النصية، أو مصفوفة من السلاسل النصية المراد البحث والاستبدال فيها.

limit

أقصى عدد بدائل ممكنة من كل نمط متواجد في كل سلسلة subject. قيمته الافتراضية ‎-1 (بلا ​​حدود).

count

إذا حُدِد فستصبح قيمة هذا المتغير تساوي عدد عمليات الاستبدال.

القيم المعادة

تُعيد هذه الدالة مصفوفةً إذا كانت المعامل subject يمثل مصفوفة، أو تُعيد سلسلةً نصية خلاف ذلك. في حالة وجود خطأ تكون القيمة المعادة هي NULL.

إذا عُثِرَ على تطابقات، تُعاد السلسلة النصية الهدف الجديدة، وإلا تُعاد السلسلة الهدف الأصلية subject دون تغيير.

أمثلة

المثال 1: مثال على الدالة preg_replace_callback_array()‎‎

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

6 matches for "a" found
3 matches for "b" found

انظر أيضًا

مصادر