یک اسکریپت 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 برای انتقال داده‌ها استفاده کنید؛ همچنین خطایابی را با بررسی مقدار برگشتی توابع انجام دهید.

توسط پژوهشگر در 198 روز قبل ساعت 05:45
دسته بندی ها: PHP PHP for beginner
reyhaneh در 198 روز قبل ساعت 05:46

قبل از 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 استفاده کنید تا حروف فارسی صحیح بماند. در محیط تولید همچنین بررسی دسترسی فایل و مدیریت خطاها را (مثلاً لاگ کردن) فراموش نکنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری