使用php在两个csv之间传输文件

时间:2014-06-23 11:45:39

标签: php

我以这种方式尝试了代码。现在它写了第一个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);

1 个答案:

答案 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);