使用 PHP 创建 CSV 文件
Create CSV File with PHP
我想创建一个新的 .csv 文件(无需先通过 fopen
打开原始文件)。
到目前为止我试过这个:
$list[] = array
(
"Name" => "John",
"Gender" => "M",
"Age" => "21"
);
$timestamp0 = date("Y-m-d H:i:sa", time());
$datetime = new DateTime($timestamp0);
$datetime->setTimezone(new DateTimeZone('Asia/Jakarta'));
$timestamp = $datetime->format("Y-m-d_H-i");
$filename = __DIR__ . "/file/" . $timestamp . ".csv";
$header = array("name", "gender", "age");
file_put_contents($filename, implode("\n", $list)); // error here bcs array given :')
我的问题是:
- How can I change array 2d to csv?
非常需要你的帮助:(非常感谢你:")
使用 fopen
和 w
将创建文件(如果不存在):
$list = [
["Name" => "John", "Gender" => "M"],
["Name" => "Doe", "Gender" => "M"],
["Name" => "Sara", "Gender" => "F"]
];
$fp = fopen($filename, 'w');
//Write the header
fputcsv($fp, array_keys($list[0]));
//Write fields
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
如果您不喜欢 fputcsv
和 fopen
,您可以使用以下替代方法:
$list = [
["Name" => "John", "Gender" => "M"],
["Name" => "Doe", "Gender" => "M"],
["Name" => "Sara", "Gender" => "F"]
];
$csvArray = ["header" => implode (",", array_keys($list[0]))] + array_map(function($item) {
return implode (",", $item);
}, $list);
file_put_contents($filename, implode ("\n", $csvArray));
希望对您有所帮助。
您可以使用下面的代码
$list[]=array ("name","gender","age"); // push header here
$list[] = array("John","M","21"); // push record here
$timestamp0 = date("Y-m-d H:i:sa",time());
$datetime = new DateTime($timestamp0);
$datetime->setTimezone(new DateTimeZone('Asia/Jakarta'));
$timestamp = $datetime->format("Y-m-d_H-i");
$filename = __DIR__ . "/file/" . $timestamp . ".csv";
$fp = fopen($filename, 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
有关更多详细信息,请阅读有关 CSV 文件的 php 手册。 http://php.net/manual/en/function.fputcsv.php
我想创建一个新的 .csv 文件(无需先通过 fopen
打开原始文件)。
到目前为止我试过这个:
$list[] = array
(
"Name" => "John",
"Gender" => "M",
"Age" => "21"
);
$timestamp0 = date("Y-m-d H:i:sa", time());
$datetime = new DateTime($timestamp0);
$datetime->setTimezone(new DateTimeZone('Asia/Jakarta'));
$timestamp = $datetime->format("Y-m-d_H-i");
$filename = __DIR__ . "/file/" . $timestamp . ".csv";
$header = array("name", "gender", "age");
file_put_contents($filename, implode("\n", $list)); // error here bcs array given :')
我的问题是:
- How can I change array 2d to csv?
非常需要你的帮助:(非常感谢你:")
使用 fopen
和 w
将创建文件(如果不存在):
$list = [
["Name" => "John", "Gender" => "M"],
["Name" => "Doe", "Gender" => "M"],
["Name" => "Sara", "Gender" => "F"]
];
$fp = fopen($filename, 'w');
//Write the header
fputcsv($fp, array_keys($list[0]));
//Write fields
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
如果您不喜欢 fputcsv
和 fopen
,您可以使用以下替代方法:
$list = [
["Name" => "John", "Gender" => "M"],
["Name" => "Doe", "Gender" => "M"],
["Name" => "Sara", "Gender" => "F"]
];
$csvArray = ["header" => implode (",", array_keys($list[0]))] + array_map(function($item) {
return implode (",", $item);
}, $list);
file_put_contents($filename, implode ("\n", $csvArray));
希望对您有所帮助。
您可以使用下面的代码
$list[]=array ("name","gender","age"); // push header here
$list[] = array("John","M","21"); // push record here
$timestamp0 = date("Y-m-d H:i:sa",time());
$datetime = new DateTime($timestamp0);
$datetime->setTimezone(new DateTimeZone('Asia/Jakarta'));
$timestamp = $datetime->format("Y-m-d_H-i");
$filename = __DIR__ . "/file/" . $timestamp . ".csv";
$fp = fopen($filename, 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
有关更多详细信息,请阅读有关 CSV 文件的 php 手册。 http://php.net/manual/en/function.fputcsv.php