English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل دروس PHP الأساسية

دليل دروس PHP المتقدمة

PHP & MySQL

كتيب مرجع PHP

استخدام دالة PHP preg_replace_callback() وامثلة

PHP تعبيرات النمط (PCRE)

يستخدم دالة preg_replace_callback لبحث عن تعبيرات نمطية واستبدالها باستخدام دالة استدعاء.

النحو

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

سلوك هذه الدالة، بخلاف تحديد callback لاستبدال replacement في حساب تبديل النص، هو نفسه مثل preg_replace().

شرح المعلمات:

  • $pattern: النمط الذي يتم البحث عنه، يمكن أن يكون نصًا أو مجموعة من النصوص.

  • $callback: دالة استدعاء، يتم استدعاؤها في كل مرة يتم فيها تبديل النص، ويتم تمرير النتائج التي تم إلتقاطها من subject إلى الدالة.

  • $subject: النص أو مجموعة النصوص المستهدف للبحث والتغيير.

  • $limit: اختياري، يمثل عدد مرات التبديل القصوى لكل نموذج لكل نص subject. القيمة الافتراضية هي -1 (بدون حدود).

  • $count: اختياري، يمثل عدد مرات التنفيذ للتبديل.

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

إذا كان subject مجموعة، فإن preg_replace_callback() تعود مجموعة، في جميع الحالات الأخرى تعود نصًا. يتم العودة إلى NULL في حالة حدوث خطأ.

إذا تم العثور على التكوين، يتم العودة إلى النص المستبدل (أو مجموعة من النصوص)، في جميع الحالات الأخرى سيتم العودة إلى subject بدون تغيير.

مثال على الإنترنت

<?php
// زيادة السنة في النص.
$text = "يوم النكتة هو 04/01/2002\n";
$text.= "آخر عيد الميلاد كان 12/24/2001\n";
// دالة الاستدعاء
function next_year($matches)
{
  // عادة: $matches[0] هو التكوين الكامل للإلتقاط
  // $matches[1] هو التكوين الأول للإلتقاط
  // بهذا الشكل
  return $matches[1].(\$matches[2]+1);
}
echo preg_replace_callback(
            "|\(\d{2}/\d{2}/\)(\d{4})|",
            "next_year",
            $text);
?>

نتيجة التنفيذ كما يلي:

يوم النكتة هو 04/01/2003
آخر عيد الميلاد كان 12/24/2002

PHP تعبيرات النمط (PCRE)