• 0

كيف أبحث عن مثيل النص داخل قطعة نص أخرى باستعمال Laravel؟

أريد تضمين خاصية تتيح للمستخدم البحث عن نص داخل قطعة نصية أخرى، فمثلا أريد البحث عن النص التالي:

DateAmountDescription 
24-01-2016$ 14,99Spotify 
23-01-2016$ 10,50Netflix
23-01-2016$ 5,50Amazon

وقد وجدت هذا الكود الخاص بمقارنة نصين:

foreach ($keywords as $keyword) 
{
    $pos = strpos($text, $keyword);

    if ($pos === false) {

    } else {
        echo "The string '$keyword' was found in the string.";
        echo " and exists at position $pos<br>";
    }
}

لكن أحصل على رسالة الخطأ التالية:

The string Spotify was found in the string. and exists at position 39.

كيف لي بحل هذا المشكل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

عليك باستعمال regex  كحل :

<?php

$string = "DateAmountDescription 
24-01-2016$ 14,99Spotify 
23-01-2016$ 10,50Netflix
23-01-2016$ 5,50Amazon";

$regex = '~(?<amount>[\d,.]+)(?<provider>Spotify|Netflix|Amazon)\s*$~m';
preg_match_all($regex, $string, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
    echo "Found: " . $match["provider"] . " with amount: " . $match["amount"] . "\n";
}
?>

وذلك بالبحث داخل المتغير string$ على عدة كلمات يتم تمريرها عبر دالة foreach، وطباعة رسالة تنبه على وجود الكلمة، كما هو مبين داخل الكود.

مثال تطبيقي.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن