ردًا على استعلام بخصوص كيفية تحديد موقع التكرار الثاني لسلسلة باستخدام الدالة strpos ، والذي يستخدم عادة للعثور على التواجد الأول، نقدم حلاً بديلاً.
يحدد الكود المقدم وظيفة مخصصة، strposX، التي تمكن من استرجاع التكرار X لسلسلة فرعية داخل سلسلة معينة. تأخذ هذه الوظيفة ثلاث معلمات: $haystack (السلسلة المصدر)، و$needle (السلسلة الفرعية المراد تحديد موقعها)، و$number، الذي يمثل التكرار المطلوب العثور عليه.
للسيناريو الذي يتم فيه التكرار المطلوب هو الثاني (أي $number هو 2)، تستدعي الدالة strposX نفسها بشكل متكرر لتحديد موضع التواجد الأول للسلسلة الفرعية، وتضيف طول السلسلة الفرعية إلى هذا الموضع، وتستخدم strpos لتحديد موقع التواجد الثاني داخل الجزء المتبقي من السلسلة.
إليك نسخة مبسطة من الكود:
function strposX($haystack, $needle, $number = 0)
{
return strpos($haystack, $needle,
$number > 1 ?
strposX($haystack, $needle, $number - 1) strlen($needle) : 0
);
}
باستخدام هذه الوظيفة، يمكن للمرء بسهولة الحصول على التواجد الثاني لسلسلة فرعية داخل سلسلة، مما يوفر حلاً متعدد الاستخدامات يتجاوز تعريف التواجد الأول القياسي الذي توفره strpos.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3