استبدال النص باستخدام preg_replace
استبدلوا التطابقات بسلاسل استبدال ومراجع خلفية
استبدال النص باستخدام preg_replace درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
توقيع preg_replace()
تعيد preg_replace($pattern, $replacement, $subject) قيمة subject بعد استبدال جميع المطابقات. مرّر مصفوفة من قيم subject لمعالجة عدة سلاسل دفعة واحدة.
استبدال بسيط
استبدل جميع الأرقام في سلسلة نصية بعلامة نجمة.
<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"الإحالات الخلفية في الاستبدال
استخدم $1 و$2... أو \1 و\2 لإدراج مجموعات الالتقاط في سلسلة الاستبدال.
<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"الإحالات الخلفية المسمّاة
يمكن الإشارة إلى مجموعات الالتقاط المسمّاة باستخدام ${name} في عملية الاستبدال.
<?php
$result = preg_replace(
'/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
'${day}/${month}/${year}',
'2025-06-15'
);
echo $result; // "15/06/2025"استبدال أنماط متعددة
مرّر مصفوفتين من الأنماط والاستبدالات لمعالجة قواعد متعددة دفعة واحدة.
<?php
$result = preg_replace(
['/foo/', '/bar/'],
['baz', 'qux'],
'foo and bar'
);
echo $result; // "baz and qux"معلمة الحد
تحدّ المعلمة الرابعة عدد عمليات الاستبدال المنفّذة. مرّر -1 لعدد غير محدود، وهو الإعداد الافتراضي.
<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"معلمة العدد
مرّر متغيرًا خامسًا لاستلام عدد عمليات الاستبدال المنفّذة.
<?php
$count = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"preg_replace_callback()
عندما تكون منطقية الاستبدال معقّدة، استخدم preg_replace_callback() لمعالجة كل مطابقة باستخدام closure.
<?php
$result = preg_replace_callback(
'/\d+/',
fn($m) => $m[0] * 2,
'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"مثال على إزالة علامات HTML
أزل جميع علامات HTML باستخدام تعبير نمطي بسيط؛ واستخدم strip_tags() في بيئة الإنتاج.
<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"تحويل سلسلة إلى Slug
حوّل عنوانًا إلى slug آمن للاستخدام في URL.
<?php
function slugify(string $s): string {
$s = strtolower($s);
$s = preg_replace('/[^a-z0-9]+/', '-', $s);
return trim($s, '-');
}
echo slugify('Hello World!'); // "hello-world"ملاحظة حول الأداء
اجعل الأنماط بسيطة وتجنّب التراجع الكارثي. استخدم preg_replace_callback للتحويلات المعقّدة بدلًا من تكديس عدة استدعاءات لـ preg_replace.
الفرق عن str_replace
تكون str_replace أسرع عند استبدال النص العادي. استخدم preg_replace فقط عندما تحتاج إلى قوة نمط regex.
الملخّص
تستبدل preg_replace جميع مطابقات النمط. استخدم الإحالات الخلفية، مثل $1، لإعادة استخدام مجموعات الالتقاط. واستخدم preg_replace_callback عندما تكون منطقية الاستبدال ديناميكية.
تحقّق سريعًا
كيف تشير إلى مجموعة الالتقاط الأولى في سلسلة استبدال preg_replace؟
الأسئلة الشائعة
هل درس «استبدال النص باستخدام preg_replace» مجاني؟
نعم — نص درس «استبدال النص باستخدام preg_replace» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «استبدال النص باستخدام preg_replace»؟
استبدلوا التطابقات بسلاسل استبدال ومراجع خلفية تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «استبدال النص باستخدام preg_replace»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات بنية Regex
- المطابقة باستخدام preg_match
- استبدال النص باستخدام preg_replace
- التقسيم والأنماط العملية