در یک آرایه از رشتهها (مثلاً خطوط لاگ یا پیامها)، با استفاده از تابع stripos در PHP تمام رشتههایی که شامل کلمه "error" (بدون توجه به حروف بزرگ/کوچک) هستند فیلتر کرده و تعداد آنها را نمایش دهید.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:47 0.0
برای حل مسئله میتوانید با حلقه foreach یا تابع array_filter روی آرایه حرکت کنید و برای هر رشته از stripos استفاده کنید و بررسی کنید که نتیجه !== false باشد (توجه کنید مقدار صفر به معنی یافتن در ابتدای رشته است). پس از فیلتر، از count() برای شمارش نتایج استفاده کنید؛ در پردازش متنهای چندبایتی از mb_stripos بهره ببرید و در صورت نیاز به استخراج متنهای پیرامونی یا الگوهای پیچیده از preg_match/Regex کمک بگیرید. این مسئله مرتبط با پردازش متن و تحلیل دادههای متنی است و استفاده از توابع داخلی PHP و توابع آرایهای کار را ساده و بهینه میکند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای فیلتر کردن آرایهای از خطوط که کلمه 'error' را بهطور غیر حساس به حروف پیدا میکند، میتوانید از array_filter همراه با stripos یا mb_stripos استفاده کنید. توجه کنید مقدار بازگشتی در stripos/mb_stripos برابر با false نیست، زیرا اگر واژه در ابتدای رشته باشد، مقدار 0 برمیگردد؛ پس مقایسه باید با !== false انجام شود. اگر متنها دارای کاراکترهای چندبایتی هستند، استفاده از mb_stripos توصیه میشود تا خطاهای تشابه ناشی از رمزگذاری جلوگیری شود. برای دقیقتر بودن مطابقت با واژه صرفاً، میتوانید از regex با گزینه i و مرز واژه \berror\b استفاده کنید.
گزارش