我以这种方式尝试了代码。现在它写了第一个csv的一部分,但我不明白,因为它不会全部复制。 为什么? // Sopprimo gli errori del php //使用error_reporting(0);
// Includo la libreria
require_once 'excel_reader2.php';
$file_handle = fopen("SATconcluse.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 0);
$arr = array('Nr SAT' => $line_of_text[0],'Data Apertura' => $line_of_text[13], 'Tipo Servizio' => $line_of_text[1], 'Stato SAT' => $line_of_text[2],'Marca Terminale' => $line_of_text[4], 'Modello Terminale' => $line_of_text[5], 'IMEI guasto' => $line_of_text[6],'IMEI consegnato' => $line_of_text[7],'Famiglia guasto' => $line_of_text[8],'Descrizione guasto' => $line_of_text[9] );
$data[] = $arr;
}
fclose($file_handle);
$file = fopen("eccomiquacisono.csv","w");
foreach ($data as $arr){
fputcsv($file,$arr);
}
fclose($file);
答案 0 :(得分:0)
使用fgetcsv
将文件加载到数组中,然后继续处理。如果您正在使用PHP5,您只需将第二个参数设置为0即可获得整行:
$line_of_text = fgetcsv($file_handle, 0);
同样,使用fputcsv
将个人记录保存在CSV文件中。
在您的代码中,您尝试使用空数组填充文件。您可能希望按顺序添加$arr
中的每个$data
:
$data[] = $arr;
然后循环每个条目并将其放在另一个文件中:
foreach ($data as $arr)
fputcsv($file,$arr);
因此整个代码将是:
$data = array();
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 0);
$arr = array(...);
$data[] = $arr;
}
fclose($file_handle);
$file = fopen("eccomiquacisono.csv","w");
foreach ($data as $arr)
fputcsv($file,$arr);
fclose($file);