本篇文章将演示在 PHP 中使用 fputcsv()
函数将数组转换为 CSV 文件。
在 PHP 中使用 fputcsv()
将数组转换为 CSV 文件
fputcsv()
首先将一行格式化为逗号分隔值,然后将其写入 CSV 文件。它需要几个参数,其中两个是必需的,即 CSV 文件和值数组。
fputcsv()
会将一维数组作为一行放入 CSV 文件中。我们可以对多维数组使用 foreach
循环将所有数据放入 CSV 文件中。
成功时返回一串值;否则,它返回 False
。
下面是使用 fputcsv()
的代码示例。
<?php
$data = array (
array('Jiyik1', 'Jiyik2', 'Jiyik3', 'Jiyik4'),
array('Jiyik1', 'Jiyik2', 'Jiyik3', 'Jiyik4'),
array('Jiyik1', 'Jiyik2', 'Jiyik3', 'Jiyik4'),
array('Jiyik1', 'Jiyik2', 'Jiyik3', 'Jiyik4')
);
//Create a CSV file
$file = fopen('Newfile.csv', 'w');
foreach ($data as $line) {
//put data into csv file
fputcsv($file, $line);
}
fclose($file);
?>
上面的代码首先创建了一个 CSV 文件,并将数据数组一个一个写入。
在 PHP 中使用 fputcsv()
将数组转换为 CSV 文件并读取该 CSV 文件
下面的代码首先使用 fputcsv()
将给定数组转换为 CSV,并使用另外两个参数 $delimiter
和 $enclosure
。它读取文件并打印包含所有文件数据的字符串。
请参阅示例以更好地理解具有更多参数的 fputcsv()
函数。
<?php
$data = array(
array('Employee', 'Salary', 'Attendence', 'Company'),
array('Mark', '3000', '20','Jiyik'),
array('Shawn', '4000', '22','Jiyik'),
array('Mike', '3500', '21','Jiyik')
);
$delimiter = ','; //parameter for fputcsv
$enclosure = '"'; //parameter for fputcsv
//convert array to csv
$file = fopen('file.csv', 'w+');
foreach ($data as $data_line) {
fputcsv($file, $data_line, $delimiter, $enclosure);
}
$data_read="";
rewind($file);
//read CSV
while (!feof($file)) {
$data_read .= fread($file, 8192); // will return a string of all data separeted by commas.
}
fclose($file);
echo $data_read;
?>
输出 1:
Employee,Salary,Attendence,Company
Mark,3000,20,Jiyik
Shawn,4000,22,Jiyik
Mike,3500,21,Jiyik