Đôi khi chúng tôi cần triển khai chức năng như đọc dữ liệu từ CSV và tải nó lên cơ sở dữ liệu, lúc đó bạn phải chuyển đổi CSV sang JSON.
Để chuyển đổi dữ liệu csv sang json, trước tiên chúng ta cần đọc tệp CSV. Giả sử rằng chúng tôi có tệp CSV được đặt tên products.csv và có chứa dữ liệu bên dưới:
Ví dụ
Product Name,SKU,Price
MI,MI123,18990
OPPO,Oppo123,27860
Hãy bắt đầu đọc dữ liệu từ CSV và chuyển đổi nó thành JSON.
Ví dụ
<?php
$fileName = "../files/products.csv";
$file = fopen($fileName, "r");
$productData = array();
while (($data = fgetcsv($file, 0, ",")) !== FALSE) {
$productData[] = $data;
}
echo json_encode($productData);
?>
// Output: [["Product Name","SKU","Price"],["MI","MI123","18990"],["OPPO","Oppo123","27860"]]
Cách thức hoạt động của mã:
Sử dụng hàm fopen
, chúng tamở tệp csv và đặt tham số thứ hai r
để đọc tệp.
Sử dụng hàm fgetcsv
, chúng ta lặp lại các hàng của tệp CSV và thêm dữ liệu vào mảng $productData
.
Cuối cùng, khi hoàn thành vòng lặp, chúng tôi chuyển đổi mảng $productData
thành json bằng cách sử dụng hàm json_encode
.
Nếu bạn muốn bỏ qua tiêu đề của CSV, tức là Tên sản phẩm, Mã hàng, Giá (Product Name,SKU,Price) thì bạn có thể làm như sau:
Ví dụ
<?php
$fileName = "../files/products.csv";
$file = fopen($fileName, "r");
$row=0;
$productData = array();
while (($data = fgetcsv($file, 0, ",")) !== FALSE) {
if($row > 0){
$productData[] = $data;
}
$row++;
}
echo json_encode($productData);
?>
// Output: [["MI","MI123","18990"],["OPPO","Oppo123","27860"]]