Php CSV sang JSON với tiêu đề

Hướng dẫn này tập trung vào cách chuyển đổi CSV sang JSON trong PHP. bạn sẽ học cách chuyển đổi CSV sang JSON trong PHP. Chúng tôi sẽ sử dụng chuyển đổi CSV sang JSON bằng PHP. nếu bạn có câu hỏi về cách chuyển đổi CSV sang JSON bằng PHP thì tôi sẽ đưa ra một ví dụ đơn giản kèm theo giải pháp

Bây giờ, hãy xem bài viết về cách chuyển đổi CSV sang JSON bằng PHP. đó là một ví dụ đơn giản về cách chuyển đổi CSV thành JSON trong PHP. bạn có thể hiểu khái niệm chuyển đổi CSV sang JSON trong PHP. nếu bạn có câu hỏi về việc chuyển đổi CSV sang JSON bằng PHP thì tôi sẽ đưa ra một ví dụ đơn giản kèm theo giải pháp

Đây là hướng dẫn đơn giản và ngắn gọn về Cách chúng tôi chuyển đổi dữ liệu tệp CSV sang định dạng JSON trong PHP. Trong thế giới lập trình web này, đôi khi chúng ta phải tạo các tính năng như lấy dữ liệu từ tệp CSV và chèn dữ liệu tệp CSV đó vào cơ sở dữ liệu Mysql, lúc đó chúng ta cần chuyển đổi CSV sang JSON. Mục đích chính của hướng dẫn này là tìm hiểu cách chúng ta có thể dễ dàng chuyển đổi tệp hoặc dữ liệu CSV sang đối tượng JSON bằng cách sử dụng tập lệnh PHP

Ưu điểm của CSV


  1. Các tệp CSV có thể được mở hoặc chỉnh sửa bằng trình soạn thảo văn bản như notepad
  2. Trong kho dữ liệu, CSV tuân theo một lược đồ đơn giản, phẳng hợp lý
  3. Bất kỳ ngôn ngữ lập trình nào để phân tích dữ liệu CSV đều đơn giản, tạo ra nó cực kỳ dễ dàng
  4. CSV an toàn và có thể phân biệt rõ ràng giữa giá trị số và văn bản. CSV không thao tác dữ liệu và lưu trữ dữ liệu nguyên trạng
  5. Trong CSV, bạn chỉ viết tiêu đề cột trong một trường hợp như trong Excel, bạn phải có thẻ bắt đầu và thẻ kết thúc cho mỗi cột trong mỗi hàng
  6. Nhập tệp CSV thường nhanh hơn nhiều và cũng tiêu tốn ít bộ nhớ hơn
  7. Thật dễ dàng để thao tác CSV theo chương trình vì xét cho cùng, chúng là các tệp văn bản đơn giản
  8. CSV thường được mở bằng bất kỳ trình soạn thảo văn bản nào trong Windows như notepad, MS Excel, Microsoft Works 9, v.v.

Ưu điểm của JSON


  1. JSON là một di động có nghĩa là nó có thể được phân tích cú pháp và viết có sẵn trong nhiều ngôn ngữ lập trình như JavaScript
  2. Bằng cách sử dụng JSON, chúng tôi có thể chuyển trực tuyến dữ liệu lớn từ nguồn đến đích dưới dạng mảng hoặc đối tượng
  3. TRONG JSON, chúng tôi có thể truyền dữ liệu ở dạng văn bản thuần túy hoặc dữ liệu chưa được định dạng như dữ liệu được phân cách bằng dấu phẩy hoặc được phân tách
  4. JSON tốt hơn XML, điều này là do nó có đủ không gian hơn cấu trúc dữ liệu XML
  5. JSON không có tên thẻ và nó có cấu trúc là các dấu ngoặc lồng nhau thay vì các thẻ dài dòng
  6. Trao đổi dữ liệu JSON nhanh hơn XML


Php CSV sang JSON với tiêu đề


Vì vậy, ở đây chúng ta đã thấy lợi ích của dữ liệu CSV và JSON và cả hai đều được sử dụng chủ yếu để trao đổi dữ liệu. Nhưng nếu bạn đã làm việc trên bất kỳ dịch vụ web nào thì dữ liệu JSON chủ yếu được sử dụng để truyền hoặc trao đổi dữ liệu trên web. Vì vậy, nếu bạn có dữ liệu ở dạng tệp CSV và bạn phải trao đổi dữ liệu đó thì bạn phải chuyển đổi dữ liệu đó sang định dạng JSON và bạn có thể dễ dàng trao đổi dữ liệu trực tuyến

Trong ngôn ngữ PHP có rất nhiều hàm có sẵn để phân tích cú pháp hoặc đọc dữ liệu từ tệp CSV rồi chuyển đổi dữ liệu đó thành mảng PHP và cuối cùng để chuyển đổi dữ liệu thành JSON thì chúng ta có thể sử dụng hàm json_encode()

Chuyển đổi tệp CSV thành JSON trong PHP. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi tệp hoặc dữ liệu CSV thành đối tượng JSON trong PHP

Chúng ta cũng nên đọc bài viết PHP JSON này

  • Ví dụ giải mã PHP JSON
  • Chuyển đổi mảng thành JSON, đối tượng thành JSON
  • Nhận, Viết, Đọc, Tải, Tệp JSON từ Url PHP

Cách chuyển đổi CSV sang JSON trong PHP

Hướng dẫn này có mục đích chỉ cho chúng ta một cách dễ dàng để chuyển đổi dữ liệu hoặc tệp CSV sang đối tượng JSON trong PHP

Hãy nói về CSV thành mảng và JSON

Chúng tôi có một tệp CSV và đó là URL https. // tài liệu. Google. com/spreadsheets/d/e/2PACX-1vTEKCTdbMgSEt7UCymQ956PIYsHei51gpCtPou4VGugKRztJVuZSNuDXKDrdDiZxx6-Ebepte8P6OlG/pub?output=csv. Nó chứa tên, tuổi, id email

Tập tin này trông giống như dưới đây

Php CSV sang JSON với tiêu đề

Tập lệnh PHP để chuyển đổi tệp CSV thành JSON

Sử dụng các bước sau để chuyển đổi tệp CSV sang đối tượng JSON trong PHP

Bước 1. Trước hết, chúng tôi sẽ đọc tệp CSV từ đường dẫn đã cho và chuyển đổi CSV thành mảng trong PHP

Bước 2. Khi chúng tôi đã chuyển đổi tệp CSV thành một mảng. Sau đó, chúng ta sẽ chuyển đổi mảng thành JSON trong PHP

Trong ví dụ này, tôi sẽ chỉ cho bạn cách chuyển đổi CSV sang JSON bằng ngôn ngữ lập trình PHP. CSV là viết tắt của các giá trị được phân tách bằng dấu phẩy và JSON là viết tắt của Ký hiệu đối tượng JavaScript. Đây thực sự là các định dạng dữ liệu được sử dụng để biểu diễn

Có định dạng dữ liệu ở dạng CSV và JSON là thuận lợi vì trọng lượng nhẹ, dễ biểu diễn và dễ phân tích cú pháp. Định dạng JSON hiện đang được sử dụng rộng rãi trong phản hồi REST

Trong ví dụ này, tôi sẽ trình bày cả hai ví dụ về cách chuyển đổi tệp CSV và chuỗi CSV thành chuỗi JSON và tệp JSON. Tôi cũng sẽ chỉ cho bạn cách in đẹp định dạng JSON đầu ra

điều kiện tiên quyết

PHP7. 4. 3, Apache 2. 4 Máy chủ HTTP

thư mục dự án

Giả sử rằng bạn đã thiết lập Apache và PHP

Bây giờ chúng ta sẽ tạo một thư mục gốc của dự án có tên php-csv-json trong thư mục htdocs của máy chủ Apache

Tôi có thể không đề cập đến thư mục gốc của dự án trong các phần tiếp theo và tôi sẽ cho rằng chúng ta đang nói về thư mục gốc của dự án

Chuỗi CSV thành Chuỗi JSON

Ví dụ đầu tiên tôi sẽ chỉ cho bạn cách chuyển đổi chuỗi CSV thành chuỗi JSON

<?php

header('Content-type: application/json; charset=UTF-8');

$csv = 'student_id,student_dob,student_email,student_address
1,01-01-1980,[email protected],Garifa
2,01-01-1982,[email protected],Garia
3,01-01-1982,[email protected],Salt Lake
4,01-01-1992,[email protected],Alipore
5,01-01-1990,[email protected],Salt Lake';
$content = array_map("str_getcsv", explode("\n", $csv));

$headers = $content[0];

$json = [];

foreach ($content as $row_index => $row_data) {
	if($row_index === 0) continue;

	foreach ($row_data as $col_idx => $col_val) {
		$label = $headers[$col_idx];
		$json[$row_index][$label] = $col_val;
	}
}

//output as JSON string
echo json_encode($json, JSON_PRETTY_PRINT);

Trong đoạn mã PHP ở trên, tôi đã khai báo loại nội dung trong tiêu đề HTTP để hiển thị dưới dạng đầu ra JSON hoặc viết dưới dạng đầu ra JSON

Tiếp theo, tôi đã đặt chuỗi CSV vào một biến. Sau đó, tôi đã đọc nội dung CSV thành một mảng bằng hàm str_getcsv

Hàng đầu tiên chứa các trường tiêu đề trong dữ liệu CSV, vì vậy tôi đã trích xuất bằng chỉ mục 0

Tiếp theo, tôi lặp qua từng chỉ mục từ mảng ngoại trừ tiêu đề. Sau đó, đối với mỗi hàng, tôi lặp qua các giá trị cột và đưa vào một mảng để tạo chuỗi JSON sẽ được hiển thị sau bằng cách sử dụng hàm json_encode()

Hàm json_encode() theo mặc định in JSON trong một dòng, vì vậy tôi đã chuyển JSON_PRETTY_PRINT làm tham số thứ hai để in đẹp

Đầu ra ở dạng chuỗi JSON bạn sẽ thấy trên trình duyệt khi nhấn vào URL http. // localhost/php-csv-json/php-csv-json. php

Php CSV sang JSON với tiêu đề

Tệp CSV sang tệp JSON

Logic chuyển đổi từ CSV sang JSON hoàn toàn giống như trên nhưng chỉ khác phần đọc và viết. Thậm chí bạn có thể đọc chuỗi CSV và ghi vào tệp JSON hoặc đọc tệp CSV và ghi vào chuỗi JSON

<?php

header('Content-type: application/json; charset=UTF-8');

$file = "student.csv";
$csv = file_get_contents($file);

$content = array_map("str_getcsv", explode("\n", $csv));

$headers = $content[0];

$json = [];

foreach ($content as $row_index => $row_data) {
	if($row_index === 0) continue;

	foreach ($row_data as $col_idx => $col_val) {
		$label = $headers[$col_idx];
		$json[$row_index][$label] = $col_val;
	}
}

//write to JSON file
$fp = fopen('student.json', 'w');
fwrite($fp, json_encode($json, JSON_PRETTY_PRINT));
fclose($fp);

Tệp tôi đang đọc được lưu trong cùng một thư mục mà tôi đã đặt tệp PHP này. Tệp JSON đầu ra cũng được tạo trong cùng thư mục. Bạn sẽ nhận được kết quả tương tự trong tệp JSON

Làm cách nào để chuyển đổi dữ liệu CSV sang JSON trong PHP?

Chuyển đổi CSV sang JSON bằng PHP .
Hàm fgetcsv($fp,"1024",",") đọc một hàng từ tệp csv thành một mảng. Tham số thứ hai "1024" là độ dài ký tự tối đa của hàng csv và tham số thứ ba "," đại diện cho dấu phân cách cột
Hàm json_encode() mã hóa mảng php thành chuỗi json

Làm cách nào để đọc tiêu đề từ tệp CSV trong PHP?

feof($f)) { $rows[] = fgetcsv($f); . header('Kiểu nội dung. văn bản/csv; . tập tin đính kèm; .

Làm cách nào để chuyển đổi CSV thành mảng trong PHP?

Chúng tôi sẽ sử dụng fopen() và fgetcsv() để đọc nội dung của tệp CSV, sau đó chúng tôi sẽ chuyển đổi nó thành một mảng bằng cách sử dụng array_map() và . .