یک اسکریپت PHP بنویسید که یک آرایهٔ داده (مثلاً لیست کاربران با فیلدهای id، name، email) را با تابع serialize سریالسازی کرده و در فایل ذخیره کند، سپس همان فایل را بخواند، دادهها را با unserialize بازسازی کند و خروجی را به صورت JSON با هدر Content-Type: application/json برگرداند.
37.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:45 0.0
برای حل این مسئله از توابع serialize و unserialize برای تبدیل آرایه به رشته و برعکس استفاده کنید و از file_put_contents و file_get_contents برای نوشتن و خواندن فایل بهره ببرید، سپس با json_encode دادهٔ بازیابیشده را به JSON تبدیل کرده و با header('Content-Type: application/json') ارسال کنید. نکات: هنگام json_encode از JSON_UNESCAPED_UNICODE استفاده کنید تا حروف فارسی صحیح بماند، قبل از unserialize خروجی فایل را بررسی کنید و برای ایمنی اگر دادهها از منبع نامطمئن میآیند از گزینهٔ ['allowed_classes'=>false] در unserialize یا استفاده از فرمت JSON برای انتقال دادهها استفاده کنید؛ همچنین خطایابی را با بررسی مقدار برگشتی توابع انجام دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
قبل از unserialize خروجی فایل را با is_string و strlen بررسی کنید و همیشه از گزینهٔ ['allowed_classes'=>false] استفاده کنید یا بهتر اینکه بهجای serialize از JSON برای انتقال دادههای نامطمئن بهره ببرید تا آسیبپذیریها کاهش یابد. هنگام نوشتن فایل از file_put_contents با قفل (LOCK_EX) استفاده کنید تا همزمانی نوشتهها مشکل ایجاد نکند و خطای بازگشت توابع را با === false چک کنید. برای خروجی JSON حتما header('Content-Type: application/json; charset=utf-8') را ارسال کرده و در json_encode از JSON_UNESCAPED_UNICODE استفاده کنید تا حروف فارسی صحیح بماند. در محیط تولید همچنین بررسی دسترسی فایل و مدیریت خطاها را (مثلاً لاگ کردن) فراموش نکنید.
گزارش