کار با JSON در PHP
#1
Lightbulb 
به نام خدا؛
سلام دوستان امیدوارم حالتون خوب باشه...
حتماً تا حالا نام JSON به گوشتون خورده و آموزش های آقای ثنایی رو راجع به اون دیدین و یا از قبل هم با اون آشنا هستین. JSON واژه اختصاری عبارت JavaScript Object Notation به معنای “نشانه‌گذاری شئ جاوا اسکریپت” است. دقیقاً مانند XML ولی خیلی ها متعقد هستن که JSON از XML خواناتر و روان تره. 
برای اینکه بخوایم با جیسون در PHP کار کنیم (یعنی هم یکسری اطلاعات رو وارد فایل جیسون کنیم و هم یکسری اطلاعات رو از یک فایل جیسون استخراج کنیم) باید دو تابع مهم در PHP رو بشناسیم. اولین تابع json_encode() نام داره که کارش تبدیل عموماً یک آرایه به رشته جیسون هست. تابع json_decode() هم یک رشته جیسون رو در قالب یک آرایه به ما نمایش میده. دقت داشته باشین که این دو تابع فقط با رشته جیسون سر و کار دارن و اگر شما بخواین یک فایل JSON رو ذخیره کنین یا ادیت کنین باید از توابع مربوط به فایل در PHP استفاده کنین.
آرایه چیست و چطور یک آرایه را تعریف کنیم؟
در مورد آرایه (Array) در PHP هم بحث به میون اومد. همونطور که میدونین آرایه در واقع متغیری هست که میتونه درون خودش چندین متغیر با مقادیر مختلف رو نگه داره و ذخیره کنه. برای تعریف یک آرایه در زبان PHP چهار راه وجود داره که شامل تعریف آرایه های تو در تو هم میشه که ما اصلاً باهاشون در این آموزش کاری نداریم. ما اینجا تنها یک راه تعریف آرایه در PHP رو با هم بررسی می کنیم.
برای تعریف یک آرایه در PHP ابتدا عبارت array رو تایپ می کنیم و بعد پرانتز رو باز می کنیم. فرض کنین اولین متغیری که قصد دارم درون آرایه خودم ذخیره کنم نامش name هست و مقدارش mahdi. همونطور که می بینین هم نام متغیر بنده و هم مقدارش هر دو یک رشته در PHP محسوب میشن. پس باید اونها رو داخل دابل کوتیشن قرار بدم. با این تفاسیر باید به این شکل کد رو بنویسم:
کد:
array(
"name" => "mahdi"
);
همونطور که می بینید من عبارت array رو تایپ کردم و بعدش تعریف کردم که مقدار متغیر name برابر با mahdi باشه. توی این شیوه تعریف آرایه در PHP باید بعد از تایپ عبارت array و باز کردن پرانتز برای تعریف اولین متغیر آرایه بریم به خط بعدی. همین طور برای این که بگیم مقدار متغیر name برابر هست با mahdi به جای مساوی از این علامت => که شبیه فلش هست استفاده می کنیم. برای تعریف دیگر متغیرها در آرایه مون هم کافیه در خطوط بعدی این کار رو انجام بدیم. یعنی هر خط به تعریف یک متغیر اختصاص پیدا میکنه و نیازی هم نیست که پس از تعریف هر متغیر آرایه سمیکالن درج کنیم. در واقع بعد از اینکه همه متغیرهای موردنظرمون برای آرایه رو تعریف کردیم باید بریم خط بعد و پرانتز رو ببندیم و سمیکالن رو درج کنیم.
میتونیم داخل همین آرایه یک یا چند آرایه دیگه هم تعریف کنیم (آرایه های تو در تو ایجاد کنیم) اما موضوع بحث ما در این آموزش همونطور که در ابتدای توضیحات آرایه گفتیم این مسئله نیست.
شاید براتون سوال شده باشه که ما میتونیم برای یک متغیر در PHP نام تعریف کنیم ولی چرا برای یک آرایه نمیتونیم؟
در واقع شما برای یک متغیر یا آرایه نام تعریف میکنین که اون رو نسبت به بقیه متغیرها و آرایه ها متمایز کنین. اگر چندین آرایه لازم دارین استفاده کنین میتونین قبل از تعریف آرایه خودتون یک متغیر با نام دلخواه تعریف کنین و مقدار اون متغیر رو برابر با آرایه تون قرار بدین.
تبدیل یک آرایه به فایل جیسون:
در کد زیر من یک آرایه رو که تعریف کردم به فایل جیسون تبدیل میکنم و بعد توی دایرکتوری که فایل PHP قرار داره ذخیره میکنم.
کد php:
<?php

/**
 * @author Master Badfar
 * @copyright 2020
 */
// تعریف آرایه
$result = array(
            
"id" => 1,
            
"name" => "mahdi",
            
"country" => "Iran",
            
"email" => "[email protected]",
);
// تعریف مقدار جیسون آرایه در قالب متغیر json_string
$json_string json_encode($result);
// ایجاد فایل جیسون به کمک توابع فایل در PHP
$fp fopen('myfile.json''w');
// ریختن محتوای جیسون در فایل جیسون ایجاد شده
fwrite($fp$json_string);
// بستن فایل
fclose($fp);
// نمایش پیغام موفقیت آمیز بودن
echo "Done!";
?>
حالا قصد داریم فایل جیسون ایجاد شده (myfile.json) رو محتویاتش رو بخونیم و در PHP دریافت کنیم. به این شکل کد مینویسیم:
کد php:
<?php

/**
 * @author Master Badfar
 * @copyright 2020
 */
// باز کردن فایل جیسون مورد نظر به کمک توابع فایل در PHP
$fp fopen('myfile.json''r');
// خواندن محتویات فایل جیسون و ذخیره محتویات فایل در متغیر json_string
$json_string readfile('myfile.json');
// بستن فایل جیسون
fclose($fp);
// ذخیره جیسون در متغیر data
$data json_decode($json_string);
// نمایش متغیر data
echo $data;
?>

امیدوارم این آموزش براتون کاربردی بوده باشه...
خوشحال میشم نظراتتون رو بهم گوشزد کنین.
با آرزوی بهترین ها...
 
غایب
  پاسخ


 سپاس شده توسط: mhp ، oak ، M.gh ، amin hosseini ، Amirhesam.KH ، ᔕinaᗪehghani
#2
خییلی خوبه که از قالب جیسون هم آموزش می دهید چراکه این قالب اطلاعاتی یکی از کامل ترین هاست و دوستان می تونن یک سری اطلاعات رو ازش استخراج کنن
اطلاعاتی که در بازی تغییر  نخواهند کرد...
[تصویر:  default-yellow.svg]
غایب
  پاسخ


 سپاس شده توسط: Master Badfar ، M.gh ، ᔕinaᗪehghani


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش پروژه محور ساخت بازی مار و پله mohsen_nasri 6 3,685 1403/10/24، 09:38 عصر
آخرین ارسال: Tggi
Star مهم آموزش خروجی اندروید روی سیستم شخصی rezamms 128 85,319 1403/10/23، 04:58 عصر
آخرین ارسال: Tggi
  مهم آموزش تصویری خروجی مستقیم - یکبار برای همیشه! rezamms 33 20,552 1401/2/13، 09:39 عصر
آخرین ارسال: kamran_cn
  خروجی اندرید davinmstr1 2 2,558 1400/8/4، 10:23 عصر
آخرین ارسال: ᔕinaᗪehghani
  AAB (بسته برنامه اندروید) چيست؟ + نحوه خروجي گرفتن در كرودوا ᔕinaᗪehghani 15 8,420 1400/6/21، 01:55 صبح
آخرین ارسال: mehdi1100

پرش به انجمن: