Truy cập bản ghi tài liệu CSV
use League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
2, đối tượng kết nối chỉ đọc cho phép dễ dàng truy cập bản ghi CSVuse League\Csv\Reader;
//load the CSV document from a file path
$csv = Reader::createFromPath['/path/to/your/csv/file.csv', 'r'];
$csv->setHeaderOffset[0];
$header = $csv->getHeader[]; //returns the CSV header record
$records = $csv->getRecords[]; //returns all the CSV records as an Iterator object
echo $csv->toString[]; //returns the CSV document as a string
Thêm bản ghi CSV mới được thực hiện đơn giản
use League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
3, đối tượng kết nối chỉ ghi cho phép thêm một hoặc nhiều bản ghi trong một cuộc gọiuse League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
Lựa chọn bản ghi CSV nâng cao
use League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
4, đối tượng trình tạo ràng buộc dễ dàng lựa chọn bản ghi CSVuse League\Csv\Reader;
use League\Csv\Statement;
//load the CSV document from a stream
$stream = fopen['/path/to/your/csv/file.csv', 'r'];
$csv = Reader::createFromStream[$stream];
$csv->setDelimiter[';'];
$csv->setHeaderOffset[0];
//build a statement
$stmt = Statement::create[]
->offset[10]
->limit[25];
//query your records from the document
$records = $stmt->process[$csv];
foreach [$records as $record] {
//do something here
}
Trình chuyển đổi tài liệu CSV
Các đối tượng trình chuyển đổi khác nhau dễ dàng chuyển đổi tài liệu CSV của bạn sang các định dạng phổ biến khác
use League\Csv\Reader; use League\Csv\XMLConverter; //load the CSV document from a SplFileObject $file = new SplFileObject['/path/to/your/csv/file.csv', 'r']; $csv = Reader::createFromFileObject[$file]; $converter = XMLConverter::create[] ->rootElement['csv'] ->recordElement['record', 'offset'] ->fieldElement['field', 'name']; $dom = $converter->convert[$csv]; $dom->formatOutput = true; $dom->encoding = 'iso-8859-15'; echo '
', PHP_EOL; echo htmlentities[$dom->saveXML[]]; // // // ... // // Anaïs // 137 // F // 2004 // // ... // // Anaïs // 124 // F // 2005 // //
Hỗ trợ API bộ lọc luồng PHP
Bộ lọc luồng PHP có thể được sử dụng trực tiếp để dễ dàng thao tác với tài liệu CSV
use League\Csv\Reader; $csv = Reader::createFromPath['/path/to/your/csv/file.csv', 'r']; $csv->setHeaderOffset[0]; $input_bom = $csv->getInputBOM[]; if [$input_bom === Reader::BOM_UTF16_LE || $input_bom === Reader::BOM_UTF16_BE] { $csv->addStreamFilter['convert.iconv.UTF-16/UTF-8']; } foreach [$csv as $record] { //all fields from the record are converted from UTF-16 into UTF-8 charset //and the BOM sequence is removed }
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
- fgetcsv[] – Đọc CSV bằng tham chiếu của tài nguyên tệp
- 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
- Tên của trái cây
- Màu của trái cây ở định dạng văn bản
- 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
________số 83] Đọ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à,
use League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
0đầu ra
Chúng tôi sẽ nhận được cùng một đầu ra cho cả hai ví dụ
use League\Csv\Writer;
$header = ['first name', 'last name', 'email'];
$records = [
[1, 2, 3],
['foo', 'bar', 'baz'],
['john', 'doe', 'john.doe@example.com'],
];
//load the CSV document from a string
$csv = Writer::createFromString[];
//insert the header
$csv->insertOne[$header];
//insert all the records
$csv->insertAll[$records];
echo $csv->toString[]; //returns the CSV document as a string
1Bằ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.