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

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

(PHP 4, PHP 5, PHP 7)

تعيد الدالة substr_count()‎ عدد مرات وجود سلسلة نصيَّة معيَّنة ضمن سلسلة نصيَّة أخرى.

الوصف

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

تعيد هذه الدالة عدد مرات وجود السلسلة النصيَّة needle ضمن السلسلة النصيَّة haystack. انتبه إلى أنَّ هذه الدالة حسَّاسة لحالة الأحرف.

ملاحظة: لا تَعدُّ هذه الدالة السلاسل النصيَّة المتداخلة. راجع المثال في الأسفل للمزيد من الوضوح.

المعاملات

main_str

السلسلة النصيَّة التي سيُبحث فيها.

str

السلسلة النصيَّة التي سيُبحث عنها.

offset

معامل اختياري وهو قيمة إزاحة موقع مؤشر البداية الذي ستبدأ عمليَّة البحث عنده وذلك من بداية السلسلة النصيَّة. إن كانت قيمة هذا المعامل سالبة، فسيُزاح موقع المؤشر بدءًا من نهاية السلسلة النصيَّة.

length

معامل اختياري وهو طول المحارف (عددها) الأقصى التي ستدخل في عمليَّة البحث عن المعامل needle وذلك بعد تحديد قيمة المعامل offset. سيَظهر تحذير إن كانت قيمة هذا المعامل مضافًا إليها قيمة المعامل length أكبر من طول المعامل haystack. إن كانت قيمة هذا المعامل سالبة، فستبدأ الدالة عملية البحث والعدِّ من نهاية المعامل haystack وحتى بدايته.

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

يُعاد عدد صحيح (integer) يمثل عدد مرات وجود المعامل needle ضمن المعامل haystack.

سجل التغييرات

الإصدار الوصف
7.1.0 إضافة امكانيَّة استعمال قيم سالبة مع المعامل offset والمعامل length.
5.1.0 إضافة المعامل offset والمعامل length.

أمثلة

المثال 1: استعمال الدالة substr_count()‎

<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

//وستُعاد القيمة 1 ،'s is a test' استعمال قيمة إزاحة مقدارها 3 يقابل البحث في السلسلة النصية 
echo substr_count($text, 'is', 3);

//وستُعاد القيمة 0 ،'s i' استعمال قيمة إزاحة وطول محارف مقدارها 3 يقابل البحث في السلسلة النصية 
echo substr_count($text, 'is', 3, 3);

// سيتولَّد هنا خطأ لأنَّ 5 + 10 > 14
echo substr_count($text, 'is', 5, 10);


// ستعُاد القيمة 1 إذ لا تُعدُّ السلاسل النصيَّة المتداخلة
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

انظر أيضًا

  • الدالة count_chars()‎: تعيد معلومات عن المحارف المستعملة في سلسلة نصيَّة ما.
  • الدالة strpos()‎: تبحث عن أول ظهور لمحارف معينَّة في سلسلة نصيَّة ثمَّ تعيد ترتيب موقعها في تلك السلسلة.
  • الدالة substr()‎: تعيد جزءًا من السلسلة النصيَّة.
  • الدالة strstr()‎: تبحث عن أول ظهور لسلسلة نصيَّة محدَّدة ضمن سلسلة نصيَّة أخرى.

مصادر