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

من موسوعة حسوب
< PHP
مراجعة 10:58، 8 أبريل 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (تصحيح التصنيفات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

(PHP 4, PHP 5, PHP 7)

تبحث الدالة strrpos()‎ عن آخر ظهور لمحارف معينَّة في سلسلة نصيَّة ثمَّ تعيد رقم موقعها في تلك السلسلة.

الوصف

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

تبحث هذه الدالة على آخر تواجد للمحارف needle ضمن السلسلة النصيَّة haystack ثمَّ تعيد رقم موقعها في تلك السلسلة.

المعاملات

haystack

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

needle

مجموعة المحارف التي ستبحث الدالة عنها. إن لم تكن تلك المحارف سلسلةً نصيَّةً، فستُحوَّل إلى عدد صحيح وتُعامل على أنَّها قيمة ترتيبيَّة للمحارف.

offset

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

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

تُعاد قيمة تمثل موقع وجود المعامل needle نسبةً إلى بداية المعامل haystack ودون أخذ قيمة الإزاحة offset أو جهة البحث بالحسبان. إن لم يُعثر على المعامل needle، فستُعاد القيمة FALSE.

تجدر الإشارة إلى أنَّ موقع أول محرف في السلسلة النصيَّة يبدأ من القيمة 0 وليس 1.

تحذير: تعيد أحيانًا هذه الدالة القيمة المنطقيَّة FALSE، وتعيد أحيانًا أخرى قيمة غير منطقيَّة ولكنَّها تعادل القيمة FALSE، لذا استعمل المعامل === للتحقق من القيمة التي تعيدها. يُفضل قراءة قسم القيم المنطقيَّة (boolean) للاطلاع على المزيد من المعلومات.

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

الإصدار الوصف
5.0.0 يمكن أن يكون المعامل needle الآن سلسلةً نصيَّةً ذات محرف واحد أو أكثر.

أمثلة

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

يمكن بسهولة إساءة فهم القيم المعادة من أجل "عُثر على المحرف في الموقع 0" ومن أجل "لم يُعثر على المحرف". يمكنك اكتشاف الفارق في هذا المثال.

<?php

$pos = strrpos($mystring, "b");
if ($pos === false) { // انتبه: ثلاث إشارات تساوي
    //... لم يُعثر 
}

?>

المثال 2: البحث باستعمال المعامل offset

<?php
$foo = "0123456789a123456789b123456789c";

var_dump(strrpos($foo, '7', -5));  // بدء البحث من نهاية السلسلة بطريقة عكسية بعد إزاحة 5 محارف من النهاية
                                   //int(17) :النتيجة هي

var_dump(strrpos($foo, '7', 20));  // بدء البحث من البداية بعد إزاحة 20 محرف
                                   //int(27) :النتيجة هي

var_dump(strrpos($foo, '7', 28));  //bool(false) :النتيجة هي
?>

انظر أيضًا

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

مصادر