یک اسکریپت PHP بنویسید که یک رشتهٔ query (URL-encoded) را از ورودی دریافت کند، با parse_str آن را به آرایه تبدیل کند و سپس آرایه را به JSON تبدیل کرده و با هدر مناسب خروجی دهد.

1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:44

0.0

برای حل این مسئله می‌توانید رشتهٔ ورودی را از php://input یا از $_SERVER['QUERY_STRING']/$_POST بگیرید، سپس با parse_str($input, $data) آن را به آرایه تبدیل کنید و با json_encode($data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT) به JSON تبدیل کنید؛ خروجی را با header('Content-Type: application/json; charset=utf-8') ارسال کنید. نکات مفید: از json_last_error() برای بررسی خطاهای سریال‌سازی استفاده کنید، مراقب کلیدهای تودرتو یا آرایه‌ای باشید زیرا parse_str نگارش‌هایی مانند name[]=a&name[]=b را به آرایه تبدیل می‌کند، و برای استفاده در API یا پردازش داده‌ها خروجی JSON را معتبر و با فرمت خوانا برگردانید.

توسط پژوهشگر در 220 روز قبل ساعت 01:44
دسته بندی ها: PHP PHP for beginner
arman در 220 روز قبل ساعت 12:10

اگر ورودی از طریق GET است، از $_SERVER['QUERY_STRING'] استفاده کنید. اگر ورودی از بدنه درخواست است و نوع آن application/x-www-form-urlencoded است، می‌توانید فایل php://input را بخوانید و با parse_str($input, $data) نتیجه را به آرایه تبدیل کنید. توجه کنید نام‌های تودرتو مثل name[]=a&name[]=b به آرایه تبدیل می‌شوند. برای خروجی JSON، از json_encode با پرچم‌های JSON_UNESCAPED_UNICODE و JSON_PRETTY_PRINT استفاده کنید و با json_last_error() خطاهای فرایند سریال‌سازی را چک کنید، در نهایت header('Content-Type: application/json; charset=utf-8') را ارسال کنید.

گزارش

1 پاسخ

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

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