در یک رشتهٔ بزرگ، تابعی بنویسید که یک آرایه از کلمات کلیدی را گرفته و با استفاده از stripos به‌صورت غیر حساس به حروف بررسی کند کدام کلمات کلیدی در متن وجود دارند و یک آرایه از کلمات پیدا شده را برگرداند.

0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:24

0.0

از تابع PHP stripos استفاده کنید که موقعیت اولین وقوع عبارت را به‌صورت case-insensitive برمی‌گرداند یا false اگر یافت نشود؛ برای هر کلمه در آرایه با بررسی stripos($text, $keyword) !== false آن را به آرایهٔ خروجی اضافه کنید. می‌توانید از حلقه foreach یا array_filter استفاده کنید و برای متون چندبایتی (مثل فارسی) در صورت نیاز از mb_stripos استفاده کنید و قبل از جستجو با trim و/یا mb_strtolower نواقص ورودی را پاک‌سازی کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:24
دسته بندی ها: PHP PHP for beginner
arash در 221 روز قبل ساعت 13:24

نکتهٔ کلیدی این است که قبل از جستجو متن و کلمات کلیدی را با trim و mb_strtolower تمیز کنید تا ورودی‌ها همگن باشند. اگر متن فارسی یا چندبایتی است، از mb_stripos به‌جای stripos استفاده کنید تا کاراکترهای یونیک به‌درستی پشتیبانی شوند. به خاطر داشته باشید که stripos/mb_stripos مقدار موقعیت اولین وقوع را برمی‌گردانند یا false؛ بنابراین بررسی شرط !== false ضروری است و نباید از مقدار 0 چشم‌پوشی کنید. همچنین برای کارایی بهتر، کلمات کلیدی خالی را فیلتر کنید و نتیجه را با یک حلقهٔ کارآمد یا array_filter بسازید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری