- پنجشنبه 30 مهر 1405 ساعت 02:00
- 3.1.9
- کامل شده
- منقضی شده
Text Helper مجموعهای از توابع پردازش و قالببندی متن دارد. این توابع برای محدود کردن طول متن، تبدیل کاراکترها، سانسور واژه، برجسته کردن عبارت و شکستن خطوط کاربرد دارند. این توابع جایگزین اعتبارسنجی یا Escape خروجی نیستند.
کاربرد و توابع اصلی
character_limiter() تعداد کاراکترها را محدود میکند، word_limiter() تعداد کلمات را کاهش میدهد، word_censor() واژههای مشخص را جایگزین میکند، highlight_phrase() عبارت را برجسته میکند، highlight_code() کد را رنگآمیزی میکند و word_wrap() خطوط را میشکند.
نمونه استفاده
$this->load->helper('text');
echo character_limiter($description, 160);
echo word_limiter($article, 40);
echo highlight_phrase($text, 'لاراول', '<mark>', '</mark>');نکته مهم
ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.
مطالعه مرتبط
برای ادامه مطالعه، کوئری، SQL Injection را ببینید.
توابع Text Helper
| متد یا مفهوم | کاربرد |
|---|---|
character_limiter() | محدود کردن تعداد کاراکتر. |
word_limiter() | محدود کردن تعداد واژه. |
word_censor() | جایگزینی واژههای مشخص. |
highlight_phrase() | برجسته کردن عبارت. |
highlight_code() | رنگآمیزی کد. |
word_wrap() | شکستن خطوط متن. |
convert_accented_characters() | تبدیل برخی کاراکترهای دارای Accent. |
نکات استفاده در پروژه
Helperها معمولاً وضعیت داخلی نگه نمیدارند و برای تبدیل یا تولید مقدارهای کوچک مناسباند. آنها را فقط در Controller یا فایلهای View بارگذاری نکنید، اگر در چند بخش برنامه استفاده میشوند میتوانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها بهصورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.
در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.
در بازبینی کد، ترتیب و نتیجه متدهای character_limiter()، word_limiter()، word_censor()، highlight_phrase() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.