دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / فرمت JSON (PHP JSON)

فرمت JSON (PHP JSON)

30 دقیقه Article

PHP و JSON: زبانِ مشترکِ وب 💎🌐

JSON محبوب‌ترین فرمت برایِ جابجاییِ داده بینِ سرور (PHP) و کلاینت (جاوااسکریپت) است. PHP توابعی فوق‌العاده سریع برایِ تبدیلِ داده‌ها به JSON و بالعکس دارد.

۱. json_encode()

تبدیلِ یک آرایه یا آبجکتِ PHP به یک رشته‌یِ JSON.

{code_block('$age = ["Ali" => 25];\necho json_encode($age); // {"Ali":25}')}

۲. json_decode()

تبدیلِ یک رشته‌یِ JSON به یک آرایه یا آبجکتِ PHP.

{code_block('$obj = json_decode($json_str);')}

تبدیل به آرایه (True flag):

به صورتِ پیش‌فرض، json_decode یک آبجکت برمی‌گرداند. اگر می‌خواهید آن را به آرایه‌یِ انجمنی (Associative) تبدیل کنید، پارامترِ دوم را true بگذارید:

{code_block('$arr = json_decode($json, true);')}
خطاهایِ JSON: اگر متنِ JSON شما حتی یک کوتیشنِ اشتباه داشته باشد، عملیات شکست می‌خورد. همیشه با json_last_error() وضعیت را چک کنید.

ارسال به جاوااسکریپت:

در پروژه‌هایِ AJAX، شما داده‌ها را به این شکل می‌فرستید تا جاوااسکریپت بتواند به راحتی از آن‌ها استفاده کند.

UTF-8: توابعِ JSON در PHP فقط با داده‌هایِ UTF-8 کار می‌کنند. اگر متنِ فارسی شما درست تبدیل نمی‌شود، مطمئن شوید انکودینگِ فایل درست است.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی پیشرفته و امنیت در PHP 🐘⚙️

درکِ عمیقِ مفاهیمِ پیشرفته، تفاوتِ بینِ یک کدنویسِ معمولی و یک معمارِ نرم‌افزار را رقم می‌زند.

۱. بهینه‌سازی I/O و بافرینگ

در هنگامِ کار با فایل‌هایِ حجیم، هرگز کلِ فایل را به یکباره در حافظه (RAM) بارگذاری نکنید. استفاده از Streams و توابعِ fopen/fgets به شما اجازه می‌دهد فایل را خط به خط پردازش کنید که باعث می‌شود مصرفِ حافظه همیشه در کمترین سطحِ ممکن باقی بماند.

۲. امنیتِ نشست‌ها (Session Security)

مهم‌ترین خطر در مدیریتِ کاربران، Session Hijacking است. همیشه بعد از لاگین کردنِ کاربر، از session_regenerate_id(true) استفاده کنید تا شناسه‌یِ نشستِ قبلی باطل شود. همچنین فلگ‌هایِ HttpOnly و Secure را برای کوکی‌ها فعال کنید.

۳. استانداردهایِ مدرن و Autoloading

در پروژه‌هایِ بزرگ، استفاده از include دستی فاجعه‌بار است. استانداردِ PSR-4 و استفاده از Composer به شما اجازه می‌دهد کلاس‌ها را فقط در زمانی که واقعاً نیاز هستند بارگذاری کنید (Lazy Loading)، که سرعتِ لود شدنِ کلِ اپلیکیشن را به شدت بالا می‌برد.

نکته استراتژیک: به جایِ استفاده از توابعِ سنتی، سعی کنید به سمتِ Object-Oriented Programming (OOP) حرکت کنید. اکثرِ کتابخانه‌هایِ پیشرفته‌یِ PHP مثل DateTime و PDO از این پارادایم استفاده می‌کنند.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تبدیل آرایه به JSON Easy
سوال تمرین

آرایه‌یِ ["a" => 1, "b" => 2] را به فرمت JSON تبدیل و چاپ کنید.

پاسخ تمرین
PHP
<?php
$data = ["a" => 1, "b" => 2];
echo json_encode($data);
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.