JSON با PHP
یادگیری JSONاستفاده معمول از JSON برای خواندن داده ها از یک وب سرور است و داده ها را در یک صفحه وب نمایش می دهد.
این فصل به شما در مورد چگونگی مبادله اطلاعات JSON بین سرویس گیرنده و یک سرور PHP آموزش خواهیم داد.
فایل PHP
PHP دارای برخی از توابع درونی برای مدیریت JSON است.
اشیاء در PHP می توانند با استفاده از تابع json_encode () به JSON تبدیل شود.
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";
$myJSON = json_encode($myObj);
echo $myJSON;
?>
مشاهده مثالسرویس گیرنده (client)جاوا اسکریپت
با استفاده از یک ارتباط AJAX برای درخواست فایل، مانند مثال بالا استفاده می کنیم.
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
};
xmlhttp.open("GET", "demo_file.php", true);
xmlhttp.send();
مشاهده مثالآرایه PHP
آرایه ها در PHP نیز هنگام استفاده از تابع json_encode () به JSON تبدیل می شوند:
<?php
$myArr = array("John", "Mary", "Peter", "Sally");
$myJSON = json_encode($myArr);
echo $myJSON;
?>
مشاهده مثالسرویس گیرنده (client)جاوا اسکریپت
در اینجا یک جاوا اسکریپت در سرویس گیرنده است، با استفاده از یک ارتباط AJAX برای درخواست فایل PHP از مثال بالا از آرایه:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj[2];
}
};
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();
مشاهده مثالبانک اطلاعاتی PHP
PHP زبان برنامه نویسی سمت سرور است و باید برای عملیاتی که تنها توسط یک سرور انجام می شود مانند دسترسی به پایگاه داده مورد استفاده قرار می گیرد.
تصور کنید که یک پایگاه داده روی سرور دارید که شامل مشتریان، محصولات و تامین کنندگان است.
شما می خواهید درخواست خود را به سرور که در آن شما برای اولین بار 10 درخواست در جدول "مشتریان" است درخواست کنید.
obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "json_demo_db.php?x=" + dbParam, true);
xmlhttp.send();
مشاهده مثالتوضیح مثال
- تعریف یک شیء حاوی یک ویژگی جدول و یک ویژگی محدود است
- جسم را به یک رشته JSON تبدیل کنید.
- ارسال یک درخواست به فایل PHP، با رشته JSON به عنوان یک پارامتر.
- صبر تا درخواست دوباره با نتیجه (به عنوان JSON)
- نمایش نتیجه دریافت شده از فایل PHP
نگاهی به فایل PHP
توضیحات فایل php
- درخواست را به یک شی تبدیل کنید، با استفاده از تابع json_decode ().
- به پایگاه داده دسترسی پیدا کنید و آرایه را با داده های درخواست شده پر کنید.
- آرایه را به یک شی اضافه کنید و جسم را به عنوان JSON با استفاده از تابع json_encode () باز کنید.
تکرار از طریق نتیجه
تبدیل نتیجه دریافت شده از فایل PHP به یک جاوا اسکریپت یا یک آرایه جاوااسکریپت تبدیل می شود.
...
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
for (x in myObj) {
txt += myObj[x].name + "
";
}
document.getElementById("demo").innerHTML = txt;
}
};
...
مشاهده مثالروش POST= PHP
هنگام ارسال داده به سرور، اغلب بهترین استفاده از روش HTTP POST است.
برای ارسال درخواست AJAX با استفاده از روش POST، روش و سرصفحه درست را مشخص کنید.
داده های فرستاده شده به سرور باید یک استدلال به روش .send () باشد:
obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
for (x in myObj) {
txt += myObj[x].name + "
";
}
document.getElementById("demo").innerHTML = txt;
}
};
xmlhttp.open("POST", "json_demo_db_post.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);
مشاهده مثالتنها تفاوت در فایل PHP، روش برای گرفتن داده های منتقل شده است.
فایل PHP
نظر شما
>