یک تابع PHP بنویسید که با استفاده از str_ireplace همهٔ موارد یک آرایهٔ کلمات نامناسب را در یک متن دادهشده بهصورت غیرحساس به حروف (case-insensitive) با '***' جایگزین کرده و علاوه بر متن پاکشده، تعداد کل جایگزینیها را نیز برگرداند.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:31 0.0
برای حل این مسئله در PHP از تابع str_ireplace استفاده کنید که بهصورت غیرحساس به حروف عمل میکند و پارامتر چهارم آن (ارثبری مرجع) تعداد جایگزینیها را برمیگرداند. ورودیها میتوانند آرایهای از کلمات جستجو و متن باشند؛ برای آرایهٔ جایگزینها میتوانید با array_fill یک آرایه از '***' بسازید و به عنوان پارامتر replace بدهید. نکته: اگر نیاز دارید فقط کلمات کامل جایگزین شوند (نه بخشهایی از کلمات)، بهتر است از preg_replace با الگوی \b استفاده کنید؛ ولی برای این تمرین و آشنایی با str_ireplace، روش بالا کافی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کوتاه: برای پیادهسازی تابعی با str_ireplace که تمام واژههای نامناسب را به '***' تغییر بدهد و تعداد جایگزینها را هم بازگرداند، میتوانید پارامتر چهارم را به یک متغیر با مرجع بدهید تا تعداد کل جایگزینها استخراج شود. ورودیها معمولاً از یک آرایه کلمات نامناسب و متن میآیند و جایگزینها را با array_fill(0, count($search), '***') تولید میکنید. اگر میخواهید فقط واژههای کامل جایگزین شوند، بهتر است از preg_replace با الگوی \b استفاده کنید؛ اما این تمرین با str_ireplace کار میکند و مفهوم مرجع بودن پارامتر چهارم را نشان میدهد. بهاشتراکگذاری این نکته هم خالی از فایده نیست که str_ireplace برای کار با کاراکترهای چندبایتی مثل فارسی ممکن است به UTF-8 درست رفتار نکند؛ در این موارد باید به روشهای دیگر یا پیشپردازش مناسب مراجعه کنید.
گزارش