Hướng dẫn này là chuyển đổi một mảng PHP thành tệp hoặc định dạng CSV. Nó có hai ví dụ về việc thực hiện chuyển đổi này.
- Một ví dụ nhanh là phân tích tập dữ liệu mảng PHP thành CSV và in dữ liệu CSV trên trình duyệt.
- Một ví dụ khác là chuyển đổi mảng cơ sở dữ liệu thành CSV và tải xuống tệp .csv.
Mục lục
Ví dụ 1: Ví dụ nhanh
Đoạn mã dưới đây sử dụng PHP fputcsv() để chuyển đổi mảng thành CSV. Hàm này yêu cầu các đối số sau để chỉ định.
- Tệp CSV đích.
- Lặp lại mảng pinter để đặt hàng CSV.
- Dấu phân cách dữ liệu.
- Bao vây dữ liệu.
<?php
$array = array(
array(100, 200, 300, 400, 500),
array('Lion', 'Tiger', 'Elephant', 'Horse', 'Dog "Domestic"'),
);
$csvDelimiter=",";
$csvEnclosure=""";
// to physically write to a file in disk
$csvFile = fopen('example.csv', 'w+');
// to write to temp
$csvFile = fopen('php://temp', 'r+');
foreach ($array as $line) {
fputcsv($csvFile, $line, $csvDelimiter, $csvEnclosure);
}
rewind($csvFile);
// to display CSV file contents on browser
$contents="";
while (!feof($csvFile)) {
$contents .= fread($csvFile, 8192);
}
fclose($csvFile);
echo $contents;
?>
Ví dụ nhanh này tạo một mảng đầu vào để chuyển đổi thành CSV. Đây là một mảng đa chiều có tập dữ liệu.
Mã này đặt dấu phân cách và bao vây trước khi chuyển đổi mảng đầu vào.
Nó lặp lại mảng và gọi fputcsv() trên mỗi lần lặp để tạo thành hàng dữ liệu.
Lấy mã từ bài viết được liên kết nếu bạn muốn chuyển đổi CSV thành một mảng PHP.
Ví dụ 2: Chuyển đổi mảng kết quả cơ sở dữ liệu sang CSV để tải xuống
Mã PHP này là để tìm hiểu cách chuyển đổi một mảng dữ liệu từ cơ sở dữ liệu sang CSV. Trước đây, chúng ta đã thấy cách xử lý CSV trong PHP để đọc, viết, nhập và xuất các hoạt động với cơ sở dữ liệu.
Trong ví dụ này, mã kết nối cơ sở dữ liệu và đọc kết quả vào một mảng. Sau đó, nó tạo luồng đầu ra tệp PHP để đặt từng hàng dữ liệu CSV.
Đầu tiên, mã thiết lập mảng tiêu đề cột. Sau đó, nó lặp lại mảng kết quả cơ sở dữ liệu và gọi fputcsv() trên mỗi hàng dữ liệu.
Tiêu đề PHP() được đặt với ứng dụng/csv để tải tệp CSV xuống trình duyệt.
<?php
// PHP code will connect to a database
// Read from a table and get result
// Formulate the result as an array to use in a convenient form
// Iterate the array
// Use PHP's function fputcsv and write the array elements
// to a CSV file
// Then push that CSV file as download
$mysqli = new mysqli("localhost", "root", "", "db_PHP_examples");
$i = 0;
$query = "SELECT id, name, type FROM tbl_php_array_to_csv";
if ($resultArray = $mysqli->query($query)) {
while ($record = $resultArray->fetch_array()) {
$animalArray[$i]['id'] = $record['id'];
$animalArray[$i]['name'] = $record['name'];
$animalArray[$i]['type'] = $record['type'];
$i++;
}
}
$fileOut = fopen("php://output", 'w') or die("Unable open php://output");
// Header forces the CSV file to download
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=example-csv.csv");
// writing the first CSV record as the column labels
// Refer:
fputcsv($fileOut, array('id', 'name', 'type'));
// writing array elements as CSV file records one by one
foreach ($animalArray as $animal) {
fputcsv($fileOut, $animal);
}
fclose($fileOut) or die("Unable to close php://output");
?>
Tập lệnh cơ sở dữ liệu
Tập lệnh cơ sở dữ liệu này nhập cấu trúc bảng và dữ liệu để chạy ví dụ này.
Bạn cũng có thể thử mã này với một bảng cơ sở dữ liệu khác. Nó chỉ yêu cầu những thay đổi mã nhỏ để chỉnh sửa tên cột của bảng mới.
--
-- Database: `db_PHP_examples`
--
-- --------------------------------------------------------
--
-- Table structure for table `tbl_php_array_to_csv`
--
CREATE TABLE `tbl_php_array_to_csv` (
`id` int NOT NULL,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL
);
--
-- Dumping data for table `tbl_php_array_to_csv`
--
INSERT INTO `tbl_php_array_to_csv` (`id`, `name`, `type`) VALUES
(1, 'Lion', 'Wild'),
(3, 'Dog', 'Domestic'),
(4, 'Tiger', 'Wild');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tbl_php_array_to_csv`
--
ALTER TABLE `tbl_php_array_to_csv`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tbl_php_array_to_csv`
--
ALTER TABLE `tbl_php_array_to_csv`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
Sử dụng mảng PHP để chuyển đổi CSV
(1) Xuất bảng cơ sở dữ liệu
Chúng tôi có thể sử dụng cơ sở dữ liệu xuất mã này sang tệp CSV. Nó dùng để sao lưu một bảng cơ sở dữ liệu.
Nếu bạn muốn tạo một chương trình PHP để sao lưu cơ sở dữ liệu hoàn chỉnh vào excel, bài viết được liên kết có mã.
(2) Định dạng dữ liệu thành giá trị được phân tách bằng dấu phẩy
Nó giúp chuyển đổi các nguồn dữ liệu khác nhau và tạo một định dạng CSV thống nhất.
Trong trường hợp tải thêm dữ liệu từ một mảng vào CSV hiện có, mã này sẽ hữu ích.
Tải xuống
Xem thêm tin mới và bổ ích tại:
– Kiến thức gia đình
– Tri thức đời sống
– Kênh youtube Kiến thức gia đình