添加1行couter并使用php中的fputcsv在最后一个Header中更改

时间:2017-02-03 17:18:51

标签: php mysql csv fputcsv

Hy那里

希望somone可以帮助我.....

我写了一个小脚本,它将从URL中获取一个CSV ...添加一行并将其导入到mysql数据库...

一切正常,但有一件事

如何更改标题的内容

我用它将我的内容写入新文件

$counter = 0;               
$data[53] = $counter++;

           fputcsv($handle2,$data,$delimiter = ";", $enclosure = '"');

这将在我的CSV文件的最后一行之后添加一个带有计数器的行(我的CSV没有唯一ID,因此我必须先添加一个,然后才能根据我的需要导入CSV)

它工作正常,但我必须直接在CSV文件中通过shell更改一些内容,但id应该直接在脚本中完成

新添加的行开始于第一个标题为0,但它应该以uniqueid或其他名称开头,而不是计数器值...但我不知道我应该怎么做...希望有人明白我的意思意味着

instead of

0
1
2
3++

i need somthing heading like

uniqueid
1
2
3++

另外,我想用$ data [53]

的标题更改$ data [1]的标题

提前谢谢

///////////UPDATE////////
    if($loadfile == true){
    if (($handle1 = fopen("http://someurl.com/csv.csv", "r")) !== FALSE) {
        if (($handle2 = fopen("test.csv", "w")) !== FALSE) {
            while (($data = fgetcsv($handle1, 99999, ";", $enclosure = '"')) !== FALSE) {
               $data[] = $counter++;
               fputcsv($handle2,$data,$delimiter = ";", $enclosure = '"');

            }
            fclose($handle2);
        }
        fclose($handle1);
        echo '<script type="text/javascript">alert("Succes ;)")</script>';
    }
    }

1 个答案:

答案 0 :(得分:0)

所以这很简单

if ($loadfile == true) {
    if (($handle1 = fopen("http://someurl.com/csv.csv", "r")) !== FALSE) {
        if (($handle2 = fopen("test.csv", "w")) !== FALSE) {
            $counter = 0;
            while (($data = fgetcsv($handle1, 99999, ";", $enclosure = '"')) !== FALSE) {

                // if you want to have the id at the last column
                $data[] = ($counter == 0) ? "uniqueid" : $counter;

                // or alternatively for the id at the first column
                //($counter == 0) ? array_unshift($data, "uniqueid") : array_unshift($data, $counter);

                fputcsv($handle2,$data,$delimiter = ";", $enclosure = '"');
                $counter++;
            }
            fclose($handle2);
        }
        fclose($handle1);
        echo '<script type="text/javascript">alert("Succes ;)")</script>';
    }
}