سلام دوستان ، حال شماخوبه ؟ امیدوارم که حالتون خوب باشه ، واز آموزشهایی که براتون گذاشتم راضی بوده باشید.بااموزش JSON در PHP درخدمت شما هستم.
مبحث حاضر نحوه ی encode/decode اشیا JSON را با زبان برنامه نویسی سمت سرور PHP آموزش می دهد. آموزش را با آماده سازی محیط برای شروع برنامه نویسی با PHP آغاز می کنیم.
محیط
از ویرایش ۵٫۲٫۰ به بعد زبان PHP، فایل های با پسوند JSON به صورت پیش فرض و خودکار، فشرده (bundle) شده و به زبان PHP ترجمه (Compile) می شود.
توابع JSON
تابع
شرح کاربرد
json_encode
مقدار پاس داده شده را به فرمت JSON تبدیل می کند. در خروجی نسخه ی تبدیل شده به JSON از مقدار ورودی را برمی گرداند.
json_decode
یک رشته از نوع JSON را به عنوان ورودی گرفته و در خروجی یک متغیر PHP برمی گرداند.
json_last_error
آخرین خطای رخ داده حین decode / encode را برمی گرداند.
تبدیل مقداری به فرمت JSON در PHP (json_encode)
این تابع برای تبدیل ورودی در PHP به JSON بکار می رود. تابع مذکور در صورت موفقیت در تبدیل یک رشته ی کدگذاری با تبدیل شده به JSON برمی گرداند و در صورت عدم موفقیت مقدار FALSE را بر می گرداند.
ساختار نگارشی (Syntax)
string json_encode ( $value [, $options = 0 ] )
پارامترهای ارسالی به تابع
۱٫ Value –مقداری که قرار است به json تبدیل شود (می تواند هر نوعی به جز resource باشد). این تابع تنها با داده های کدگذاری شده به کاراکترهای UTF-8 کار می کند.
۲٫ options –این پارامتر اختیاری یک bistmask متشکل از JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT می باشد (bitmask مجموعه ای از بولی های سبک و کوچک است و برای دسترسی به بیت های خاصی از یک بایت از داده بکار می رود).
مثال
نمونه ی زیر نحوه ی تبدیل یک آرایه به JSON را با زبان PHP نمایش می دهد:
php
$arr = array(‘a’ => 1, ‘b’ => 2, ‘c’ => 3, ‘d’ => 4, ‘e’ => 5);
echo json_encode($arr);
?>
پس از اجرا نتیجه ی زیر را بدست می دهد:
{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}
مثال زیر نحوه ی تبدیل اشیا PHP به فرمت JSON را نمایش می دهد:
php
class Emp {
public $name = “”;
public $hobbies = “”;
public $birthdate = “”;
}
$e = new Emp();
$e->name = “sachin”;
$e->hobbies = “sports”;
$e->birthdate = date(‘m/d/Y h:i:s a’, “8/5/1974 12:20:03 p”);
$e->birthdate = date(‘m/d/Y h:i:s a’, strtotime(“8/5/1974 12:20:03”));
echo json_encode($e);
?>
با اجرای کد فوق نتیجه ی زیر حاصل می شود:
{“name”:”sachin”,”hobbies”:”sports”,”birthdate”:”08\/05\/1974 12:20:03 pm”}
تبدیل رشته ی JSON به متغیر PHP (json_decode)
تابع json_decode() برای تبدیل رشته ی JSON به متغیر PHP بکار می رود.
ساختارنگارشی (Syntax)
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
لیست پارامترهای ورودی
۱٫ json_string: رشته از نوع JSON که قرار است به متغیر PHP تبدیل شود. این رشته باید فقط با کاراکترهای UTF-8 کدگذاری شده باشد.
۲٫ assoc –پارامتر از نوع بولی که اگر بر روی TRUE تنظیم شده باشد، اشیا بازگشتی به آرایه های associative (آرایه های ربطی) تبدیل می شوند.
۳٫ depth- یک پارامتر از نوع عدد صحیح که عمق recursion (بازگشت) را مشخص می کند.
۴٫ options –یک bitmask از نوع عدد صحیح از JSON decode است. در حال حاضر تنها JSON_BIGINT_AS_STRING پشتیبانی می شود.
مثال
نمونه ی زیر نحوه ی decode اشیا JSON و تبدیل آن ها به یک متغیر متعارف PHP را نمایش می دهد:
php
$json = ‘{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}’;
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
خروجی زیر را تولید می کند:
object(stdClass)#1 (5) {
[“a”] =>int(1)
[“b”] =>int(2)
[“c”] =>int(3)
[“d”] =>int(4)
[“e”] =>int(5)
}
array(5) {
[“a”] =>int(1)
[“b”] =>int(2)
[“c”] =>int(3)
[“d”] =>int(4)
[“e”] =>int(5)
}