آموزش رایگان PHP

آموزش جامع دریافت و پردازش اطلاعات JSON در PHP بر اساس استاندارد گوگل

1405/08/02 15:56 محراب حسن زاده
آموزش جامع دریافت و پردازش اطلاعات JSON در PHP بر اساس استاندارد گوگل

مقدمه

امروزه فرمت متنی JSON به عنوان استانداردی بی‌رقیب جهت انتقال داده‌ها میان سرور و کلاینت شناخته می‌شود. در فریم‌ورک‌ها و کتابخانه‌های مدرن، تبادل اطلاعات عمدتاً بر پایه همین فرمت انجام می‌گیرد. دریافت صحیح و اصولی این داده‌ها در زبان برنامه‌نویسی PHP با رعایت الزامات امنیتی و استانداردهای شرکت گوگل، پایداری وب‌سایت یا وب‌سرویس شما را تضمین می‌کند. در این مقاله به آموزش گام‌به‌گام این فرآیند می‌پردازیم.

۱. چرا متغیر $_POST برای داده‌های JSON کارآمد نیست؟

زمانی که کلاینت داده‌ها را با هدر Content-Type: application/json ارسال می‌کند، PHP به صورت خودکار قادر به پر کردن متغیر سراسری $_POST نخواهد بود. برای دستیابی به بدنه پیام خام ارسال شده، می‌بایست از جریان ورودی شبیه‌سازی‌شده پی‌اچ‌پی با نام php://input استفاده کنیم.

۲. دریافت جریان خام ورودی در PHP

مطابق مستندات توسعه گوگل، اولین قدم دریافت بدنه خام درخواست و بررسی خالی نبودن آن است:


$rawInput = file_get_contents('php://input');

if (empty($rawInput)) {
    http_response_code(400);
    echo json_encode(["error" => "بدنه درخواست ارسالی خالی است."]);
    exit;
}

۳. اعتبارسنجی هدر درخواست (Content-Type)

برای اطمینان از اینکه کلاینت حتماً داده‌ها را در قالب JSON ارسال کرده است، بررسی هدر درخواست جزو اصول اساسی گوگل به شمار می‌رود:


$contentType = isset($_SERVER['CONTENT_TYPE']) ? trim($_SERVER['CONTENT_TYPE']) : '';

if (strpos($contentType, 'application/json') === false) {
    http_response_code(415); // Unsupported Media Type
    echo json_encode(["error" => "فرمت هدر ارسالی باید application/json باشد."]);
    exit;
}

۴. تبدیل JSON به آرایه یا شیء با متد ایمن و مدرن

در نسخه‌های جدید PHP (نسخه 7.3 به بالا)، روش توصیه شده برای کار با تابع json_decode، فعال‌سازی پرچم JSON_THROW_ON_ERROR است. این فلگ باعث می‌شود در صورت بروز خطای ساختاری در جی‌سان، یک استثنا (Exception) پرتاب شود که به راحتی قابل رهگیری و مدیریت است:


try {
    // آرگومان دوم true باعث تبدیل شدن خروجی به آرایه انجمنی (Associative Array) می‌شود
    $data = json_decode($rawInput, true, 512, JSON_THROW_ON_ERROR);
    
    // دسترسی ایمن به مقادیر آرایه
    $username = $data['username'] ?? null;
    $email = $data['email'] ?? null;
    
    if (!$username || !$email) {
        throw new Exception("پارامترهای ارسالی ناقص هستند.");
    }
    
    // انجام عملیات نهایی بر روی داده‌ها
    // ...
    
} catch (JsonException $e) {
    http_response_code(400);
    echo json_encode([
        "success" => false,
        "message" => "خطا در ساختار متنی JSON ارسالی: " . $e->getMessage()
    ]);
    exit;
} catch (Exception $e) {
    http_response_code(422);
    echo json_encode([
        "success" => false,
        "message" => $e->getMessage()
    ]);
    exit;
}

۵. بازگرداندن پاسخ نهایی مناسب

همیشه پس از اتمام پردازش داده‌ها، پاسخ خروجی را با هدر مناسب به کلاینت ارجاع دهید:


header('Content-Type: application/json; charset=utf-8');
echo json_encode([
    "success" => true,
    "message" => "اطلاعات کاربری با موفقیت پردازش شد."
]);

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها
1403/06/02 20:49

آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها

مطالعه بیشتر
آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا
1402/06/18 22:34

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

مطالعه بیشتر
آموزش کامل و امن آپلود فایل در PHP (مطابق استاندارد گوگل)
1405/05/01 20:17

آموزش کامل و امن آپلود فایل در PHP (مطابق استاندارد گوگل)

مطالعه بیشتر
آموزش ایجاد و حذف المان‌های DOM به صورت داینامیک با جاوا اسکریپت: راهنمای جامع و کاربردی
1403/08/02 21:21

آموزش ایجاد و حذف المان‌های DOM به صورت داینامیک با جاوا اسکریپت: راهنمای جامع و کاربردی

مطالعه بیشتر
معرفی Vue.js و ویژگی‌های کلیدی آن: فریمورک مدرن برای توسعه وب تعاملی
1402/06/28 00:33

معرفی Vue.js و ویژگی‌های کلیدی آن: فریمورک مدرن برای توسعه وب تعاملی

مطالعه بیشتر
راهنمای کامل جداول HTML: آموزش ساخت و بهینه‌سازی سئو
1402/05/21 23:26

راهنمای کامل جداول HTML: آموزش ساخت و بهینه‌سازی سئو

مطالعه بیشتر
آموزش جامع و گام‌به‌گام حلقه for در PHP + مثال‌های کاربردی
1405/04/04 00:11

آموزش جامع و گام‌به‌گام حلقه for در PHP + مثال‌های کاربردی

مطالعه بیشتر
آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع
1402/06/04 23:55

آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
1403/07/28 21:31

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
جمع‌بندی، مرور مطالب و پروژه نهایی: ایجاد یک اپلیکیشن وب کامل با جاوا اسکریپت - راهنمای گام به گام
1403/08/05 21:21

جمع‌بندی، مرور مطالب و پروژه نهایی: ایجاد یک اپلیکیشن وب کامل با جاوا اسکریپت - راهنمای گام به گام

مطالعه بیشتر
آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)
1405/05/14 22:03

آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)

مطالعه بیشتر
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML
1405/03/13 23:44

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد