我有一个数组:
$remove_rownumbers = array(1, 4, 7, 9, 2);
这些是rownumbers,我希望从PHP中加载的CSV中删除。
现在我想通过一个计数器和一个in_array if语句遍历这些行:
$row = 1;
if (($handle = fopen($CSV_FILE, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1500, ",")) !== FALSE) {
if(in_array($row, $remove_rownumbers) == false) // if its not in the remove array, keep it
{
// (...) the output part, where im echoing out each row by foreach($data ...)
}
$row++;
}
}
但是如何才能获取现在输出的回声并将其再次保存为CSV正确?这样,数组中的行号就不在这个新的
中我找到了一个类似的开头:
header('Content-Encoding: UTF-8');
header('Content-type: application/ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename=output.csv');
echo "\xEF\xBB\xBF";
$fp = fopen("php://output", "w");
答案 0 :(得分:0)
您需要fopen()一个新的CSV文件并获取句柄,但这很简单:
$row = 1;
if ( ($handle = fopen($CSV_FILE, "r")) !== FALSE ) {
while ( ($data = fgetcsv($handle, 1500, ",")) !== FALSE ) {
if ( in_array($row, $remove_rownumbers) == false ) {
fputcsv($newFile, $data);
}
$row++;
}
}
我忘记了你要下载它的位置。使用重定向标头到新文件。
header("Location: http://www.example.com/newfile.csv");