JSON PHP

JSON-এর সাধারণ ব্যবহার হল ওয়েব সার্ভার থেকে ডাটা পড়া এবং তা ওয়েবপেজে দেখানো

এই চাপটিতে আপনাকে PHP সার্ভার এবং ক্লায়েন্টের মধ্যে JSON ডাটা আদান-প্রদানের কিভাবনো শিখতে হবে

PHP ফাইল

PHP JSON-এর ব্যবস্থা প্রদান করে

PHP ফাংশন ব্যবহার করে json_encode()PHP-এর অবজেক্ট JSON-এ রূপান্তর করা যায়:

PHP ফাইল

<?php
মাই ওবজেক্ট->নাম = "বিল গেটস";
মাই ওবজেক্ট->এজ = 62;
$myObj->city = "Seattle";
$myJSON = json_encode($myObj);
echo $myJSON;
?>

PHP ফাইল দেখান

ক্লায়েন্ট জাভাস্ক্রিপ্ট

এটি ক্লায়েন্টের JavaScript, যা AJAX কার্যক্রম দ্বারা PHP ফাইলটির জন্য অনুরোধ করে:

প্রকল্প

ব্যবহার JSON.parse() ফলাফলকে JavaScript অবজেক্টে রূপান্তর করুন:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         document.getElementById("demo").innerHTML = myObj.name;
     });
});
xmlhttp.open("GET", "demo_file.php", true);
xmlhttp.send();

স্বয়ং প্রয়াস করুন

PHP আর্রেইজ

PHP ফাংশন ব্যবহার করতে json_encode() তখন, PHP-এর আর্রেইজও JSON-এ রূপান্তর করা হবে:

PHP ফাইল

<?php
$myArr = array("Bill Gates", "Steve Jobs", "Elon Musk");
$myJSON = json_encode($myArr);
echo $myJSON;
?>

PHP ফাইল দেখান

ক্লায়েন্ট জাভাস্ক্রিপ্ট

এটি ক্লায়েন্টের JavaScript, যা AJAX কার্যক্রম দ্বারা PHP ফাইলটির জন্য অনুরোধ করে:

প্রকল্প

ব্যবহার করুন JSON.parse() ফলাফলকে JavaScript আর্রেইজে রূপান্তর করুন:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         document.getElementById("demo").innerHTML = myObj[2];
     });
});
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();

স্বয়ং প্রয়াস করুন

PHP ডাটাবেস

PHP সার্ভার পার্শ্ব প্রোগ্রামিং ভাষা, যা শুধুমাত্র সার্ভার দ্বারা কার্যকর হওয়ার জন্য ব্যবহার করা হবে, যেমন ডাটাবেস প্রবেশ করা。

চিন্তা করুন, সার্ভারে একটি ডাটাবেস রয়েছে, যাতে ক্লায়েন্ট, পণ্য এবং সরবরাহকারীর তথ্য রয়েছে。

এই মুহূর্তে, আপনাকে "ক্লায়েন্ট" টেবিলের প্রথম দশটি রেকর্ড পাওয়ার জন্য সার্ভার থেকে অনুরোধ করতে হবে:

প্রকল্প

ব্যবহার করুন JSON.stringify() জাভাস্ক্রিপ্ট অবজেক্টকে JSON-এ রূপান্তর করুন:

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", "demo_json_db.php?x=" + dbParam, true);
xmlhttp.send();

স্বয়ং প্রয়াস করুন

উদাহরণ ব্যাখ্যা:

  • টেবল এবং লিমিট প্রতিমূলক একটি অবজেক্ট নির্বাচন করুন。
  • এই অবজেক্টকে JSON স্ট্রিং রূপে রূপান্তর করুন。
  • এই PHP ফাইলে প্রচেষ্টা পাঠান, JSON হিসাবে প্রামাণ্যসূত্রসমূহ পাঠান
  • প্রচেষ্টা ফলাফল পাওয়া অপরান্ত অপেক্ষা করুন (জিএসএন (JSON) রূপে)
  • পিএইচপি ফাইল থেকে পাওয়া ফলাফল দেখান

পিএইচপি ফাইল দেখুন

PHP ফাইল

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =  json_decode($_GET["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>

PHP ফাইলের ব্যাখ্যা:

  • প্রচেষ্টা অবজেক্টটিকে পরিবর্তন করুন, PHP ফাংশন ব্যবহার করে: json_decode().
  • ডাটাবেস পরিভ্রমণ, যুক্ত করা ডাটা দ্বারা আইন্দ্রীয়কমান্ড (আর্রেই) পূর্ণ করুন。
  • আইন্দ্রীয়কমান্ড (আর্রেই) কে অবজেক্টে যোগ করুন, json_encode() ফাংশন জিএসএন (JSON) দ্বারা অবজেক্টটি ফেরত দেয়。

ফলাফল পরিভ্রমণ

পিএইচপি ফাইল থেকে পাওয়া ফলাফলকে জেভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করুন বা এই উদাহরণে, একটি জেভাস্ক্রিপ্ট আইন্দ্রীয়কমান্ড (আর্রেই) হিসাবে পাওয়া যায়:

প্রকল্প

ব্যবহার JSON.parse() জিএসএন (JSON) কোডকে জেভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করুন:

...
xmlhttp.onreadystatechange = function() {
     if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         for (x in myObj) {
             txt += myObj[x].name + "<br>";
        });
         document.getElementById("demo").innerHTML = txt;
    });
});
 ...

স্বয়ং প্রয়াস করুন

PHP পদ্ধতি = POST

সেবার্নার থেকে ডাটা পাঠানোর সময়, সাধারণত, 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 + "<br>";
        });
         document.getElementById("demo").innerHTML = txt;
    });
});
xmlhttp.open("POST", "demo_json_db.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);

স্বয়ং প্রয়াস করুন

PHP ফাইলের একমাত্র পার্থক্য হল প্রেরিত ডাটা সংগ্রহ করার পদ্ধতি。

PHP ফাইল

ব্যবহার $_POST বদলে $_GET

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =  json_decode($_POST["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>