- جمعه 1 آبان 1405 ساعت 08:00
- 3.1.9
- کامل شده
- منقضی شده
XML Helper داده متنی را برای قرار گرفتن در سند XML آماده میکند. تابع xml_convert() کاراکترهای خاص را به Entity مناسب تبدیل میکند تا ساختار XML بهدلیل وجود علامتهایی مانند کوچکتر و بزرگتر خراب نشود. این تابع جایگزین اعتبارسنجی Schema یا ساخت XML ساختیافته نیست.
کاربرد و توابع اصلی
برای خروجی XML، بهتر است از XMLWriter یا DOMDocument برای ساخت ساختار استفاده کنید و مقادیر متنی را Escape کنید. xml_convert() برای تبدیل متن ساده به خروجی سازگار با XML در موارد محدود کاربرد دارد.
نمونه استفاده
$this->load->helper('xml');
$title = xml_convert($productTitle);
header('Content-Type: application/xml; charset=utf-8');
echo "<product><title>{$title}</title></product>";نکته مهم
ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.
مطالعه مرتبط
برای ادامه مطالعه، کوئری، SQL Injection را ببینید.
تابع XML Helper
| متد یا مفهوم | کاربرد |
|---|---|
xml_convert($str) | Escape کاراکترهای خاص برای XML. |
encoding | تعیین Encoding مناسب. |
XMLWriter | برای ساخت سند XML پیچیده از XMLWriter استفاده کنید. |
schema validation | اعتبارسنجی ساختار با XSD وظیفه جداگانهای است. |
نکات استفاده در پروژه
Helperها معمولاً وضعیت داخلی نگه نمیدارند و برای تبدیل یا تولید مقدارهای کوچک مناسباند. آنها را فقط در Controller یا فایلهای View بارگذاری نکنید، اگر در چند بخش برنامه استفاده میشوند میتوانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها بهصورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.
در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.
در بازبینی کد، ترتیب و نتیجه متدهای xml_convert($str)، encoding، XMLWriter، schema validation را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.