• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

Typography Helper برای مرتب‌سازی متن و تبدیل برخی الگوهای متنی به HTML مناسب‌تر استفاده می‌شود. تابع auto_typography() می‌تواند متن ساده را به پاراگراف و شکست خط تبدیل کند. nl2br_except_pre() نیز شکست خط را بیرون از بلوک‌های Pre به تگ BR تبدیل می‌کند.

کاربرد و توابع اصلی

این توابع برای متن‌های ساده مناسب‌اند، اما برای محتوای HTML پیچیده یا متن‌هایی که از منبع غیرقابل اعتماد می‌آیند باید با احتیاط استفاده شوند. خروجی را در کنار Escape و Sanitization مناسب قرار دهید.

نمونه استفاده

 $this->load->helper('typography');
 echo auto_typography($plainText);
 echo nl2br_except_pre($text);

نکته مهم

ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.

مطالعه مرتبط

برای ادامه مطالعه، کوئری، SQL Injection را ببینید.

توابع Typography Helper

متد یا مفهومکاربرد
auto_typography()تبدیل متن به HTML پاراگراف‌بندی‌شده.
nl2br_except_pre()تبدیل شکست خط بیرون از PRE.
entity_decode()تبدیل HTML Entity به کاراکتر.
protect_characters()محافظت از برخی نشانه‌ها.
contextخروجی تولیدشده را از نظر XSS بررسی کنید.

نکات استفاده در پروژه

Helperها معمولاً وضعیت داخلی نگه نمی‌دارند و برای تبدیل یا تولید مقدارهای کوچک مناسب‌اند. آن‌ها را فقط در Controller یا فایل‌های View بارگذاری نکنید، اگر در چند بخش برنامه استفاده می‌شوند می‌توانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها به‌صورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.

در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.

در بازبینی کد، ترتیب و نتیجه متدهای auto_typography()، nl2br_except_pre()، entity_decode()، protect_characters() را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت