जेएसओएन पीएचपी
JSON का एक सामान्य उपयोग वेब सर्वर से डेटा पढ़ना और डेटा को वेब पेज में प्रदर्शित करना है।
यह अध्याय आपको सिखाएगा कि क्लाइंट और PHP सर्वर के बीच JSON डेटा का आदान-प्रदान कैसे करें।
पीएचपी फ़ाइल
PHP में JSON को हैंडल करने के लिए कुछ बिल्ट-इन फंक्शन हैं।
PHP में ऑब्जेक्ट को PHP फ़ंक्शन json_encode() का उपयोग करके JSON में परिवर्तित किया जा सकता है :
पीएचपी फ़ाइल
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New
York";
$myJSON = json_encode($myObj);
echo $myJSON;
?>
क्लाइंट जावास्क्रिप्ट
ऊपर दिए गए उदाहरण से PHP फ़ाइल का अनुरोध करने के लिए AJAX कॉल का उपयोग करके क्लाइंट पर एक जावास्क्रिप्ट यहां दी गई है:
उदाहरण
परिणाम को JavaScript ऑब्जेक्ट में बदलने के लिए JSON.parse() का उपयोग करें:
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
xmlhttp.open("GET", "demo_file.php");
xmlhttp.send();
पीएचपी सरणी
PHP फ़ंक्शन json_encode() का उपयोग करते समय PHP में Arrays को JSON में भी परिवर्तित किया जाएगा :
पीएचपी फ़ाइल
<?php
$myArr = array("John", "Mary", "Peter", "Sally");
$myJSON = json_encode($myArr);
echo $myJSON;
?>
क्लाइंट जावास्क्रिप्ट
ऊपर दिए गए सरणी उदाहरण से PHP फ़ाइल का अनुरोध करने के लिए AJAX कॉल का उपयोग करके क्लाइंट पर एक जावास्क्रिप्ट यहां दिया गया है:
उदाहरण
परिणाम को जावास्क्रिप्ट सरणी में बदलने के लिए JSON.parse() का उपयोग करें:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj[2];
}
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();
पीएचपी डेटाबेस
PHP एक सर्वर साइड प्रोग्रामिंग भाषा है, और इसका उपयोग डेटाबेस तक पहुँचने के लिए किया जा सकता है।
कल्पना कीजिए कि आपके सर्वर पर एक डेटाबेस है, और आप उस क्लाइंट से एक अनुरोध भेजना चाहते हैं जहां आप "ग्राहक" नामक तालिका में 10 पहली पंक्तियों के लिए पूछते हैं।
क्लाइंट पर, एक JSON ऑब्जेक्ट बनाएं जो उन पंक्तियों की संख्या का वर्णन करता है जिन्हें आप वापस करना चाहते हैं।
सर्वर को अनुरोध भेजने से पहले, JSON ऑब्जेक्ट को एक स्ट्रिंग में कनवर्ट करें और इसे PHP पृष्ठ के url के पैरामीटर के रूप में भेजें:
उदाहरण
जावास्क्रिप्ट ऑब्जेक्ट को JSON में बदलने के लिए JSON.stringify () का उपयोग करें:
const limit = {"limit":10};
const dbParam = JSON.stringify(limit);
xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
xmlhttp.open("GET","json_demo_db.php?x=" + dbParam);
xmlhttp.send();
उदाहरण समझाया:
- "सीमा" संपत्ति और मूल्य वाली वस्तु को परिभाषित करें।
- ऑब्जेक्ट को JSON स्ट्रिंग में कनवर्ट करें।
- एक पैरामीटर के रूप में JSON स्ट्रिंग के साथ PHP फ़ाइल के लिए एक अनुरोध भेजें।
- परिणाम के साथ अनुरोध वापस आने तक प्रतीक्षा करें (JSON के रूप में)
- PHP फ़ाइल से प्राप्त परिणाम प्रदर्शित करें।
PHP फ़ाइल पर एक नज़र डालें:
पीएचपी फ़ाइल
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =
json_decode($_GET["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s", $obj->limit);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>
पीएचपी फ़ाइल समझाया:
- PHP फ़ंक्शन json_decode() का उपयोग करके अनुरोध को किसी ऑब्जेक्ट में कनवर्ट करें ।
- डेटाबेस तक पहुंचें, और अनुरोधित डेटा के साथ एक सरणी भरें।
- किसी ऑब्जेक्ट में सरणी जोड़ें, और json_encode() फ़ंक्शन का उपयोग करके ऑब्जेक्ट को JSON के रूप में वापस करें ।
डेटा का उपयोग करें
उदाहरण
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
let text = "";
for (let x in myObj) {
text += myObj[x].name + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
पीएचपी विधि = पोस्ट
सर्वर पर डेटा भेजते समय, अक्सर HTTP POST
पद्धति का उपयोग करना सबसे अच्छा होता है।
विधि का उपयोग करके AJAX अनुरोध भेजने के लिए POST
, विधि और सही शीर्षलेख निर्दिष्ट करें।
send()
सर्वर को भेजा गया डेटा अब विधि का तर्क होना चाहिए :
उदाहरण
const dbParam = JSON.stringify({"limit":10});
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
let text ="";
for (let x in myObj) {
text += myObj[x].name + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
xmlhttp.open("POST", "json_demo_db_post.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);
PHP फ़ाइल में एकमात्र अंतर स्थानांतरित डेटा प्राप्त करने की विधि है।
पीएचपी फ़ाइल
$_GET के बजाय $_POST का उपयोग करें:
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =
json_decode($_POST["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s",
$obj->limit);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>