Đọc và ghi tệp JSON trong PHP

Bài viết này sẽ thảo luận về cách đọc tệp JSON và hiển thị chi tiết ở định dạng bảng bằng PHP. Để sử dụng hàm PHP file_get_contents() chúng ta có thể đọc một tệp và lấy dữ liệu có trong tệp JSON. Sau khi lấy dữ liệu cần chuyển định dạng JSON sang định dạng mảng. Sau đó, với việc sử dụng câu lệnh lặp sẽ hiển thị dưới dạng bảng

Tệp đầu vào JSON - tệp. json

[
	{ "name":"xxxx","age":"23","gender":"female","education":"BTech","occupation":"developer"},
	{ "name":"YYYY","age":"30","gender":"male","education":"BE","occupation":"programmer"},
	{ "name":"zzz","age":"20","gender":"female","education":"MBA","occupation":"HR"},
	{ "name":"XYZ","age":"40","gender":"male","education":"CA","occupation":"auditor"}   
]   

Đoạn mã dưới đây sẽ xác nhận xem có tệp JSON hay không. Nếu không có tệp JSON, nó sẽ hiển thị  "Không tìm thấy tệp JSON"

Trong bài viết này, tôi sẽ giải thích cách viết và nối thêm dữ liệu vào tệp JSON trong khi gửi biểu mẫu. Ở đây, bằng cách sử dụng một số hàm PHP, chúng tôi sẽ thêm dữ liệu ở định dạng JSON. Tôi có một biểu mẫu HTML đơn giản với một số hộp nhập liệu như tên, giới tính, tuổi, v.v.

Sử dụng tập lệnh PHP, chúng ta có thể lưu trữ một giá trị biểu mẫu ở định dạng mảng. Sau đó sẽ chuyển đổi mảng thành dữ liệu JSON bằng hàm được xác định trước json_encode(). Sau đó, cuối cùng chúng ta có thể di chuyển dữ liệu sang tệp định dạng JSON

Trong đoạn mã dưới đây là biểu mẫu HTML của tôi được cung cấp

User Details


Name
Gender Male Female
Age
Education
Designation
DOB

Trong khi gửi một biểu mẫu chúng ta có thể xác thực các giá trị đầu vào POST param thông số bằng cách sử dụng tập lệnh PHP

​if(empty($_POST["name"]))
{
     $error = "Enter Name";
}
else if(empty($_POST["gender"]))
{
     $error = "Enter Gender";
}
else if(empty($_POST["education"]))
{
     $error = "Enter education";
}  else if(empty($_POST["designation"]))
{
     $error = "Enter Designation";
}
	  else if(empty($_POST["age"]))
{
     $error = "Enter age";
}

Khi tất cả dữ liệu được xác thực, chúng tôi cần thêm vào tệp JSON. Vì vậy, sử dụng hàm mảng, tất cả dữ liệu được lưu trữ ở định dạng mảng và sau đó nó chuyển đổi thành dữ liệu JSON bằng cách sử dụng hàm json_encode()

Nếu tệp đã tồn tại, chúng tôi có thể nối nó với dữ liệu cũ đó. hàm file_get_contents() sẽ lấy dữ liệu hiện tại trong một tệp, sau đó chúng ta có thể thêm dữ liệu mới. Trong trường hợp chúng tôi không có tệp sẽ tạo tệp mới và ghi dữ liệu theo cách tương tự

Nếu bạn chưa biết, JSON có thể ở định dạng tệp. Chúng được đặt tên giống như sau – VitalLogicData. json. Nó hầu như là một tệp văn bản nhưng chứa dữ liệu được định dạng tốt theo kiểu Ký hiệu đối tượng JavaScript. Các tệp này có thể được đọc từ hoặc, tất nhiên, cũng được thêm vào

Lần đầu tiên tôi nhìn thấy. json tôi khá bối rối, tôi luôn nghĩ rằng JSON chỉ thuộc về trình duyệt. Nhưng có nhiều nguyên nhân dẫn đến file JSON nên chúng ta cần biết cách quản lý chúng. Bài viết này sẽ cung cấp cho bạn kiến ​​thức để đọc các tệp JSON bằng PHP và đó là một hướng dẫn lý tưởng cho người mới bắt đầu

Dữ liệu tệp JSON

Đối với hướng dẫn này, tôi đã tìm thấy một kho lưu trữ hoàn hảo trên GitHub. Nó chứa một danh sách khổng lồ các tên màu và Số Hex của chúng. Bạn có thể lấy css-color-names. json từ repo tại đây. Hoặc bạn có thể tải file trực tiếp tại đây

Như bạn sẽ thấy trong tệp, nội dung sẽ được trình bày như đoạn mã sau –

{
  "aliceblue": "#f0f8ff",
  "antiquewhite": "#faebd7",
  "aqua": "#00ffff",
  "aquamarine": "#7fffd4",
  "azure": "#f0ffff",
  "beige": "#f5f5dc",
  "bisque": "#ffe4c4",
  "black": "#000000",
......
}

Sau khi tải xuống, hãy đặt tệp vào thư mục gốc của môi trường trang web PHP của bạn. Ví dụ http. // localhost/css-color-name. json. Điều này sẽ giúp dễ tìm hơn khi chúng tôi đang cố đọc tệp qua PHP

Đọc tệp JSON bằng ví dụ PHP

Trong ví dụ sau, chúng ta sẽ sử dụng PHP để đọc dữ liệu từ tệp CSS-color-names. Sau đó, khi chúng tôi đã in thành công dữ liệu lên trang, chúng tôi sẽ đưa dữ liệu vào các thẻ JavaScript và ghi dữ liệu đó vào bảng điều khiển. Bắt đầu nào

Đầu tiên, chúng ta cần đọc nội dung tệp bằng hàm gốc của PHP file_get_contents. Tham số đầu tiên file_get_contents mong đợi là đường dẫn đến tệp cần đọc. Trong trường hợp này, CSS-color-names. json

Lưu ý rằng không cần chỉ định thư mục gốc, vì trong trường hợp này, tập lệnh đã nằm trong thư mục đó rồi

Đọc nội dung tệp JSON
// Get the contents of the JSON file 
$strJsonFileContents = file_get_contents("css-color-names.json");
var_dump($strJsonFileContents); // show contents

Đoạn mã trên kết xuất phần sau vào trang -

string '{
  "aliceblue": "#f0f8ff",
  "antiquewhite": "#faebd7",
  "aqua": "#00ffff",
  "aquamarine": "#7fffd4",
  "azure": "#f0ffff",
  "beige": "#f5f5dc",
  "bisque": "#ffe4c4",
  "black": "#000000",
  "blanchedalmond": "#ffebcd",
  "blue": "#0000ff",
  "blueviolet": "#8a2be2",
  "brown": "#a52a2a",
  "burlywood": "#deb887",
  "cadetblue": "#5f9ea0",
  "chartreuse": "#7fff00",
  "chocolate": "#d2691e",
  "coral": "#ff7f50",
  "cornflowerblue": "#6495ed",
  "cornsilk": "#fff8dc",
  "crimson": "#dc143c",
  "cyan": '.. (length=3841)

Tôi biết suy nghĩ của bạn, nó thực sự đơn giản như vậy sao? . Tôi sẽ làm cả hai trong các ví dụ sau

Chuyển đổi nội dung tệp JSON thành mảng PHP

Một chuỗi JSON trong PHP khá vô dụng, vì vậy nếu chúng ta chuyển đổi nó thành một mảng, thì chúng ta có thể lặp lại nó và thực hiện một số thao tác thú vị với dữ liệu. Bạn có thể muốn lưu trữ nó trong cơ sở dữ liệu hoặc in nó ra một bảng HTML. Dù bạn muốn làm gì, trước tiên nó sẽ cần phân tích cú pháp thành một mảng. Để làm điều này, chúng tôi sử dụng json_decode với tham số Boolean tuyệt vời của nó để chuyển đổi thành một mảng kết hợp

// Get the contents of the JSON file 
$strJsonFileContents = file_get_contents("css-color-names.json");
// Convert to array 
$array = json_decode($strJsonFileContents, true);
var_dump($array); // print array

Mã PHP ở đây sẽ in toàn bộ mảng kết hợp ra trang như sau –

array (size=148)
  'aliceblue' => string '#f0f8ff' (length=7)
  'antiquewhite' => string '#faebd7' (length=7)
  'aqua' => string '#00ffff' (length=7)
  'aquamarine' => string '#7fffd4' (length=7)
  'azure' => string '#f0ffff' (length=7)
.......

Điều này bây giờ có nghĩa là chúng ta có thể dễ dàng truy cập từng màu theo tên được chỉ định của chúng và trả về giá trị Hệ thập lục phân có thể được sử dụng trong CSS chẳng hạn. Sử dụng đoạn mã sau, chúng ta có thể yêu cầu màu aqua hex từ mảng. Tất nhiên, điều này mở ra các cửa sổ cơ hội mới cho ứng dụng

________số 8_______
Tiêm JSON vào JavaScript

Chín trong số mười lần, làm việc với Ký hiệu đối tượng JavaScript có nghĩa là rất có thể bạn sẽ cần nó cho một số chức năng JavaScript. Đây là lý do tại sao tôi muốn trình bày nhanh cách đưa dữ liệu trực tiếp vào một biến JavaScript bằng PHP. Nó khá đơn giản để làm

Đọc và ghi tệp JSON trong PHP

Bằng cách sử dụng PHP trong các thẻ tập lệnh, chúng tôi có thể lặp lại dữ liệu trong khi xác định biến JavaScript. Đổi lại, JSON sẽ được phân tích cú pháp và sẵn sàng sử dụng. Xem ví dụ sau –

var colorsJson = ; // Pass in json from PHP
console.info(colorsJson); // Log to console.
console.log(colorsJson.aqua); // Log single value to console.

Ảnh chụp màn hình bên dưới hiển thị đầu ra của bảng điều khiển trong Chrome. JSON đã được phân tích cú pháp chính xác và hiện có sẵn để truy cập các thuộc tính bằng ký hiệu dấu chấm

Đọc và ghi tệp JSON trong PHP

Người giới thiệu

Trong suốt các ví dụ, trong bài viết này, một số hàm PHP gốc đã được sử dụng để đọc tệp JSON. Dưới đây là liên kết trực tiếp đến tài liệu của các hàm đó trên trang web PHP. Kiểm tra chúng để tham khảo

  • file_get_contents
  • json_decode

Tóm lược

Trong hướng dẫn này, chúng tôi đã học được rằng bạn có thể đọc các tệp Ký hiệu đối tượng JavaScript trực tiếp trong PHP. Nó không chỉ có khả năng làm như vậy và thậm chí có thể phân tích cú pháp để sử dụng tiếp, như được hiển thị khi được chuyển đổi thành một mảng. Ngoài ra, việc chuyển dữ liệu trực tiếp vào JavaScript đã được giải thích, cung cấp cho bạn các công cụ để sau đó xây dựng những thứ như trực quan hóa hoặc chuyển vào lệnh gọi ajax

PHP có thể ghi vào tệp JSON không?

Sử dụng tập lệnh PHP chúng ta có thể lưu trữ một giá trị biểu mẫu ở định dạng mảng. Sau đó sẽ chuyển đổi mảng thành dữ liệu JSON bằng hàm định sẵn json_encode(). Sau đó, cuối cùng chúng ta có thể di chuyển dữ liệu sang tệp định dạng JSON.

Làm cách nào để đọc dữ liệu JSON trong PHP?

Để sử dụng hàm PHP file_get_contents() chúng ta có thể đọc một tệp và truy xuất dữ liệu có trong tệp JSON. Sau khi lấy dữ liệu cần chuyển định dạng JSON sang định dạng mảng. Sau đó, với việc sử dụng câu lệnh lặp sẽ hiển thị dưới dạng bảng.

Làm cách nào để đọc và viết trong JSON?

Đọc/ghi tệp JSON bằng nút. .
Đọc dữ liệu JSON từ đĩa
Tìm hiểu cách sử dụng mô-đun fs để tương tác với hệ thống tệp
Lưu giữ dữ liệu vào tệp JSON
Sử dụng JSON. phân tích cú pháp và JSON. stringify để chuyển đổi dữ liệu sang và từ định dạng JSON

Làm cách nào để thêm dữ liệu vào tệp JSON trong PHP?

Để tạo tệp JSON, chúng tôi đã sử dụng PHP file_put_contents() được sử dụng để ghi dữ liệu vào tệp . Chúng tôi truyền 2 đối số trong hàm file_put_contents(). Tham số đầu tiên là tên tệp mà chúng ta muốn lưu trữ dữ liệu ở định dạng JSON và tham số thứ hai là hàm get_data() trong PHP của chúng ta.