Php đọc dữ liệu json

Cách sử dụng phổ biến của JSON là đọc dữ liệu từ máy chủ web và hiển thị dữ liệu trong một trang web

Bài viết này sẽ hướng dẫn bạn cách trao đổi dữ liệu JSON giữa máy khách và máy chủ PHP

PHP File

PHP has an number of integration to processing JSON

Các đối tượng trong PHP có thể được chuyển đổi thành JSON bằng cách sử dụng hàm PHP  json_encode() .

Ví dụ ta có tên tệp demo_file. php

$myObj->name = "John";<
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";

$myJSON = json_encode($myObj);

echo $myJSON;
?>

Máy khách JavaScript

Đây là JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ trên

html>
<html>
<body>

<h2>Get data as JSON from a PHP file on the server.h2>

<p id="demo">p>

<script>
  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();
script>

body>
html>

PHP Array

Mảng trong PHP cũng sẽ được chuyển thành JSON khi sử dụng hàm PHP  json_encode() .

Ví dụ ta có tên tệp demo_file_array. php

$myArr = mảng("
$myArr = array("John""Mary""Peter""Sally");

$myJSON = json_encode($myArr);

echo $myJSON;
?>

Máy khách JavaScript

Đây là một JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ an toàn trên

html>
<html>
<body>

<h2>Get data as JSON from a PHP file, and convert it into a JavaScript array.h2>

<p id="demo">p>

<script>
  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();
script>

body>
html>

Cơ sở dữ liệu PHP

PHP là ngôn ngữ lập trình phía máy chủ và có thể được sử dụng để truy cập cơ sở dữ liệu

Hãy tưởng tượng bạn có một cơ sở dữ liệu trên máy chủ của mình và bạn muốn gửi yêu cầu đến nó từ máy khách, trong đó bạn yêu cầu 10 hàng đầu tiên trong bảng có tên "khách hàng"

Trên máy khách, ta tạo một đối tượng JSON mô tả số hàng bạn muốn trả về

Trước khi bạn gửi yêu cầu đến máy chủ, hãy chuyển đối tượng JSON thành một chuỗi và gửi nó bên dưới dưới dạng tham số đến url của trang PHP

html>
<html>
<body>

<h2>Get data as JSON from a PHP file on the server.h2>

<p>The JSON received from the PHP file:p>

<p id="demo">p>

<script>
  var obj, dbParam, xmlhttp;
  obj = { "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();
script>

body>
html>

Ví dụ được giải thích như sau

  • Xác định một đối tượng chứa thuộc tính và giá trị "giới hạn"
  • Chuyển đổi đối tượng thành chuỗi JSON
  • Gửi một yêu cầu đến tệp PHP, với chuỗi JSON làm tham số
  • Chờ đến khi yêu cầu trả về kết quả (dưới định dạng JSON)
  • Hiển thị kết quả nhận được từ tệp PHP

Còn đây là tệp nội dung json_demo_db. php

tiêu đề("Loại nội dung. ứng dụng/json;
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);

$conn = new mysqli("myServer""myUser""myPassword""myDB");
$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);
?>

Tệp PHP được giải thích như sau

kết quả lặp lại

Chuyển đổi kết quả nhận được từ tệp PHP thành một đối tượng JavaScript hoặc trong trường hợp này là một mảng JavaScript