Hàm Fgetcsv trong PHP là gì?

Nhận toàn quyền truy cập vào PHP Functions Essential Reference và hơn 60.000 tiêu đề khác, với bản dùng thử miễn phí 10 ngày của O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

Hướng dẫn này là để giúp bạn đọc tệp CSV hoặc dữ liệu. Giá trị được phân tách bằng ký tự [CSV] hoặc Giá trị được phân tách bằng dấu phẩy là loại tệp chứa nội dung văn bản thuần túy có dấu phẩy hoặc ký tự làm dấu phân cách

Nó là một hình thức thuận tiện để lưu trữ dữ liệu đơn giản. PHP có hai chức năng sẵn có để đọc tệp CSV

  1. fgetcsv[] – Đọc CSV bằng tham chiếu của tài nguyên tệp
  2. str_getcsv[] – Đọc dữ liệu CSV được lưu trữ trong một biến

1] Tệp CSV sang bảng HTML

Trong ví dụ nhanh này, nó đọc CSV thành bảng HTML. Trong PHP đọc tệp CSV là mã một dòng bằng cách sử dụng hàm tích hợp fgetCSV[]

Nó di chuyển xử lý tệp CSV cho đến khi đến cuối dòng. Mỗi lần, nó chuyển đổi một dòng dữ liệu hiện tại thành một mảng

ví dụ nhanh


    

NAME COLOR

Tạo tệp CSV có giá trị được phân tách bằng dấu phẩy như tệp bên dưới. Nó bao gồm dữ liệu cho một bảng trái cây với các giá trị đại diện cho

  1. Tên của trái cây
  2. Màu của trái cây ở định dạng văn bản
  3. Mã HTML của màu trái cây

hoa quả. csv

"Apple","RED","#D62433"
"Orange","ORANDE","#FEB635"
"Banana","YELLOW","#FEE492"
"Grapes","VIOLET","#B370AD"
"KIWI","GREEN","#9BA207"
"Dates","BROWN","#922E2F"

Khái niệm cơ bản về PHP fgetcsv[]

Hàm fgetcsv[] chấp nhận xử lý tệp CSV làm đối số bắt buộc. Nó đọc dữ liệu CSV và chuyển đổi nó thành một mảng. Cú pháp là,


Thông sốMô tả$file_handleDữ liệu tài nguyên tệp CSV. $limitMax độ dài để đọc một dòng dữ liệu. $separator Dấu tách ký tự. $enclosureKý tự được sử dụng để bao quanh các giá trị$escape_characterKý tự thoát trong khi đọc CSV

Ghi chú

  • Nếu $file_handle không phải là tài nguyên hợp lệ thì fgetcsv[] sẽ trả về NULL
  • Bằng cách chỉ định tham số $limit, nó sẽ tăng tốc độ thực thi chức năng này

2] Tệp CSV vào cơ sở dữ liệu Chèn tập lệnh truy vấn

Trong mã PHP này, nó đọc CSV và chuẩn bị một. tập lệnh sql. Tập lệnh SQL này sẽ có các truy vấn chèn cơ sở dữ liệu. Nó sẽ giúp thực thi thao tác chèn hàng loạt để tải dữ liệu CSV vào bảng MySQL

";
    while [! feof[$CSVfp]] {
        $data = fgetcsv[$CSVfp, 1000, ","];
        if [! empty[$data]] {
            echo "INSERT INTO fruits [`fruits_name`, `fruits_color`, `fruits_color_code`] VALUES ['" . $data[0] . "', '" . $data[1] . "', '" . $data[2] . "'];\r\n\n";
        }
    }
}
fclose[$CSVfp];
?>

3] Đọc dữ liệu chuỗi CSV PHP

Hàm str_getcsv[] dùng để đọc CSV từ dữ liệu chuỗi thay vì tài nguyên tệp. Cú pháp là,


Đối số đầu tiên được sử dụng để truyền dữ liệu chuỗi CSV cho hàm này. Phần còn lại của các đối số có cùng mục đích như chúng ta đã thấy trong fgetcsv[]. Trong chức năng này, không có giới hạn cho dòng đọc của chuỗi CSV

ví dụ str_getcsv[]

Đầu tiên, chúng ta phải lưu trữ trái cây. Nội dung tệp CSV thành một biến và chuyển nó vào str_getcsv[]. Và sau đó, chức năng này được gọi để phân tách các dòng với ngắt dòng thích hợp. Trong khi lặp lại giữa các dòng này, nó sẽ được phân tách thành các trường. Kịch bản là,

";
$row = str_getcsv[$str_CSV, "\n"];
$length = count[$row];
for [$i = 0; $i < $length; $i ++] {
    $data = str_getcsv[$row[$i], ","];
    echo "INSERT INTO fruits [`fruits_name`, `fruits_color`, `fruits_color_code`] VALUES ['" . $data[0] . "', '" . $data[1] . "', '" . $data[2] . "'];\r\n\n";
}
?>

đầu ra

Chúng tôi sẽ nhận được cùng một đầu ra cho cả hai ví dụ

Array[[0] => Apple [1] => RED [2] => #D62433]
Array[[0] => Orange [1] => ORANDE [2] => #FEB635]
Array[[0] => Banana [1] => YELLOW [2] => #FEE492]
Array[[0] => Grapes [1] => VIOLET [2] => #B370AD]
Array[[0] => KIWI [1] => GREEN [2] => #9BA207]
Array[[0] => Dates [1] => BROWN [2] => #922E2F]

Bằng cách lặp lại mảng này, chúng ta có thể xử lý những dữ liệu này theo nhiều cách khác nhau. Ví dụ: hiển thị CSV ở chế độ xem lưới hoặc tạo câu lệnh truy vấn, v.v.

fgetcsv[f_pointer,int $length,string $delimiter, string $encloser,string $escape];
Tham sốDESCRIPTIONf_pointerBắt buộc. con trỏ tệp thành công$lengthOptional. Phải lớn hơn độ dài dòng tối đa$delimiterOptional. Chỉ một ký tự$encloserTùy chọn. Bao vây trường char$escape Tùy chọn. tham số thoát đặt ký tự thoát Chúng tôi có thể lấy dữ liệu từ tệp CSV [các giá trị được phân tách bằng dấu phẩy] bằng cách sử dụng hàm fgetcsv[] trong PHP. Hàm chuỗi này trả về cho chúng ta dòng dữ liệu hoặc bản ghi dưới dạng một mảng. Hàm này đọc dòng từ con trỏ tệp mà chúng tôi cung cấp [bởi fopen] và phân tích cú pháp cho dữ liệu CSV. Vì vậy, dữ liệu có thể được thu thập dưới dạng các phần tử của mảng

Đầu ra là mảng được lập chỉ mục chứa các trường được đọc

Ví dụ về fgetcsv[]

Chúng tôi sẽ sử dụng dữ liệu csv của bảng sinh viên. [Tải về bản sao của học sinh. csv ở cuối hướng dẫn này ]
Bạn có thể đọc cách chuẩn bị dữ liệu CSV từ bảng sinh viên tại đây.
Bây giờ, dữ liệu sinh viên có sẵn cho chúng tôi trong tệp csv

Trước tiên, chúng tôi sẽ mở tệp csv và giữ con trỏ

$f_pointer=fopen["student.csv","r"]; // file pointer
Sau đó, chúng tôi sẽ sử dụng con trỏ để lặp qua tất cả các hàng của tệp cho đến khi đến cuối tệp. Trong vòng lặp, chúng tôi sẽ sử dụng fgetcsv[] để thu thập mảng và sau đó in đầu ra. Đây là mã.
";
}
?>
Đầu ra ở đây.
"Apple","RED","#D62433"
"Orange","ORANDE","#FEB635"
"Banana","YELLOW","#FEE492"
"Grapes","VIOLET","#B370AD"
"KIWI","GREEN","#9BA207"
"Dates","BROWN","#922E2F"
0

Tạo tệp SQL để chèn bản ghi vào cơ sở dữ liệu

Bây giờ chúng ta có thể tách dữ liệu từ đoạn mã trên và sử dụng dữ liệu, chúng ta sẽ chuẩn bị một loạt lệnh chèn SQL để lưu trữ hoặc thêm tất cả các bản ghi này vào bảng sinh viên. Mỗi vòng lặp sẽ có một lệnh chèn. Đây là mã.
"Apple","RED","#D62433"
"Orange","ORANDE","#FEB635"
"Banana","YELLOW","#FEE492"
"Grapes","VIOLET","#B370AD"
"KIWI","GREEN","#9BA207"
"Dates","BROWN","#922E2F"
1Một phần của kết quả ở đây
"Apple","RED","#D62433"
"Orange","ORANDE","#FEB635"
"Banana","YELLOW","#FEE492"
"Grapes","VIOLET","#B370AD"
"KIWI","GREEN","#9BA207"
"Dates","BROWN","#922E2F"
2

Xóa dòng đầu tiên làm tiêu đề cột

Trong tệp csv, chúng tôi có thể không muốn sử dụng dòng đầu tiên làm dữ liệu vì chúng sẽ có tiêu đề cột.
"Apple","RED","#D62433"
"Orange","ORANDE","#FEB635"
"Banana","YELLOW","#FEE492"
"Grapes","VIOLET","#B370AD"
"KIWI","GREEN","#9BA207"
"Dates","BROWN","#922E2F"
3Nếu bạn muốn tải file sql thì làm theo hướng dẫn ở cuối phần tạo file CSV

fputcsv[]. để ghi dữ liệu vào tệp csv


sinh viên. csv
← Đăng ký Kênh YouTube của chúng tôi tại đây

Làm cách nào để tìm nạp tệp CSV trong PHP?

Chúng tôi có thể lấy dữ liệu từ tệp CSV [các giá trị được phân tách bằng dấu phẩy ] bằng cách sử dụng hàm fgetcsv[] trong PHP . Hàm chuỗi này trả về cho chúng ta dòng dữ liệu hoặc bản ghi dưới dạng một mảng. Hàm này đọc dòng từ con trỏ tệp mà chúng tôi cung cấp [bởi fopen] và phân tích cú pháp cho dữ liệu CSV. Vì vậy, dữ liệu có thể được thu thập dưới dạng các phần tử của mảng.

Tệp CSV trong PHP là gì?

Giá trị được phân tách bằng ký tự [CSV] hoặc Giá trị được phân tách bằng dấu phẩy là loại tệp chứa nội dung văn bản thuần túy có dấu phẩy hoặc ký tự làm dấu phân tách . Nó là một hình thức thuận tiện để lưu trữ dữ liệu đơn giản. PHP có hai chức năng sẵn có để đọc tệp CSV. fgetcsv[] – Đọc CSV bằng tham chiếu của tài nguyên tệp.

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

csv', 'r']; . tệp csv. $csv->setHeaderOffset[0]; $header = $csv->getHeader[]; print_r[$header]; $records = $csv->getRecords[]; print_r[iterator_to_array[$records]]; echo $csv->getContent[]; We read the header and the data from the users. csv file.

Làm cách nào để bỏ qua dòng đầu tiên trong tệp CSV PHP?

Làm cách nào tôi có thể lấy mã để bỏ qua hàng đầu tiên của CSV? . ] ?

Chủ Đề