البحث والاستبدال في السلاسل النصية
اعثروا على النص واستبدلوه باستخدام strpos وstr_replace وstr_contains.
البحث والاستبدال في السلاسل النصية درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
العثور على نص داخل السلاسل النصية
يوفّر PHP العديد من الدوال لتحديد مواضع السلاسل الفرعية. الدوال الأساسية:
strpos()— العثور على موضع أول ظهورstrrpos()— العثور على موضع آخر ظهورstr_contains()— التحقّق من الوجود في PHP 8str_starts_with()/str_ends_with()— متاحتان في PHP 8
strpos()
تعيد موضع أول ظهور (بفهرس يبدأ من 0)، أو false إذا لم يُعثر عليه:
<?php
$str = 'the quick brown fox';
$pos = strpos($str, 'brown');
echo $pos; // 10
// Always use === to check for false (0 is also falsy!)
if (strpos($str, 'quick') !== false) {
echo 'Found!';
}str_contains وstr_starts_with وstr_ends_with
أضاف PHP 8 هذه الدوال المنطقية الواضحة:
<?php
$email = 'user@example.com';
var_dump(str_contains($email, '@')); // true
var_dump(str_starts_with($email, 'user')); // true
var_dump(str_ends_with($email, '.com')); // true
var_dump(str_ends_with($email, '.org')); // falsestr_replace()
استبدل جميع ظهورات سلسلة البحث بسلسلة بديلة:
<?php
$template = 'Hello {name}, your order #{id} is ready.';
$result = str_replace(
['{name}', '{id}'],
['Alice', '4521'],
$template
);
echo $result;
// Hello Alice, your order #4521 is ready.str_ireplace() — غير حساسة لحالة الأحرف
تعمل str_ireplace() مثل str_replace()، لكنها تتجاهل حالة الأحرف:
<?php
$text = 'PHP is great. php is powerful. PHP is fun.';
$result = str_ireplace('php', 'PHP 8', $text);
echo $result;
// PHP 8 is great. PHP 8 is powerful. PHP 8 is fun.substr_replace()
استبدل جزءًا من سلسلة نصية باستخدام الموضع والطول:
<?php
$str = 'Hello World';
echo substr_replace($str, 'PHP', 6, 5);
// Hello PHP
// Replace from end
echo substr_replace($str, '!', -1);
// Hello Worl!substr_count()
احسب عدد مرات ظهور سلسلة فرعية:
<?php
$text = 'to be or not to be';
echo substr_count($text, 'be'); // 2
echo substr_count($text, 'to'); // 2
echo substr_count($text, 'or'); // 1preg_replace() — الاستبدال باستخدام التعبيرات النمطية
استخدم نمط تعبير نمطي لإجراء عمليات استبدال معقّدة:
<?php
$html = '<p>Hello <b>World</b></p>';
// Strip HTML tags
$plain = preg_replace('/<[^>]+>/', '', $html);
echo $plain; // Hello World
// Replace multiple spaces with one
$spaced = 'too many spaces';
echo preg_replace('/\s+/', ' ', $spaced);
// too many spaceshtmlspecialchars للوقاية من XSS
احرص دائمًا على تخطي محارف إدخال المستخدم قبل إخراجها إلى HTML للوقاية من هجمات XSS:
<?php
$userInput = '<script>alert("hacked")</script>';
// Dangerous:
echo $userInput; // executes script!
// Safe:
echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
// <script>alert("hacked")</script>حساب عدد عمليات الاستبدال
يمكن لـ str_replace() الإبلاغ عن عدد عمليات الاستبدال التي أُجريت من خلال المعامل الاختياري الرابع:
<?php
$text = 'cat and cat and cat';
$count = 0;
$result = str_replace('cat', 'dog', $text, $count);
echo $result; // dog and dog and dog
echo $count; // 3حشو السلاسل النصية
أضف حشوًا إلى السلسلة النصية حتى تصل إلى الطول المطلوب لأغراض التنسيق:
<?php
echo str_pad('42', 8); // '42 ' (right-pad)
echo str_pad('42', 8, '0', STR_PAD_LEFT); // '000042'
echo str_pad('PHP', 7, '-', STR_PAD_BOTH); // '--PHP--'تحقّق سريعًا
أي دالة في PHP 8 تتحقّق مما إذا كانت السلسلة النصية تبدأ بـ بادئة محددة؟
مراجعة: البحث والاستبدال
الدوال الأساسية:
strpos/strrpos— العثور على الموضع (استخدم التحقّق === false)str_contains/starts_with/ends_with— دوال منطقية مساعدة في PHP 8str_replace/str_ireplace— استبدال بسيطpreg_replace— استبدال يستند إلى تعبير نمطيhtmlspecialchars— تخطي المحارف لإخراج HTML
الأسئلة الشائعة
هل درس «البحث والاستبدال في السلاسل النصية» مجاني؟
نعم — نص درس «البحث والاستبدال في السلاسل النصية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «البحث والاستبدال في السلاسل النصية»؟
اعثروا على النص واستبدلوه باستخدام strpos وstr_replace وstr_contains. تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «البحث والاستبدال في السلاسل النصية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات السلاسل النصية وضمّها
- البحث والاستبدال في السلاسل النصية
- دوال السلاسل الجزئية والحشو
- تقسيم السلاسل النصية وضمّها