在php中使用fputcsv添加1行计数器,并用最后一个标题更改第一行

在php中使用fputcsv添加1行计数器,并用最后一个标题更改第一行,php,mysql,csv,fputcsv,Php,Mysql,Csv,Fputcsv,我写了一个小脚本,它将从URL获取CSV…添加一行并将其导入mysql数据库 除了一件事,一切都很好 如何更改标题的内容 我使用它将我的内容写入一个新文件 $counter = 0; $data[53] = $counter++; fputcsv($handle2,$data,$delimiter = ";", $enclosure = '"'); 这将在我的CSV文件的最后一行之后添加一个带有计数器的行(我的CSV没有唯一的ID,因此我必

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

除了一件事,一切都很好

如何更改标题的内容

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

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

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

它的工作很好,但我必须改变一些东西通过shell在CSV文件直接,但id应该直接在脚本中完成

新添加的行在第一个标题中以0开头,但它应该以uniqueid或其他名称开头,而不是计数器值……但我不知道该如何做

instead of

0
1
2
3++

I need something heading like

uniqueid
1
2
3++
我还想将$data[1]的标题改为$data[53]

///////////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>';
    }
    }
///UPDATE////////
如果($loadfile==true){
如果($handle1=fopen(“http://someurl.com/csv.csv“,”r“)!==假){
if($handle2=fopen(“test.csv”,“w”)!==FALSE){
while($data=fgetcsv($handle119999,“;”,$enclosure='”)!==FALSE){
$data[]=$counter++;
fputcsv($handle2,$data,$delimiter=“;”,$enclosure=”);
}
fclose(handle2美元);
}
fclose(handle1美元);
回声“警报”(“成功”)”);
}
}
所以它相当简单

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>';
    }
}
if($loadfile==true){
如果($handle1=fopen(“http://someurl.com/csv.csv“,”r“)!==假){
if($handle2=fopen(“test.csv”,“w”)!==FALSE){
$counter=0;
while($data=fgetcsv($handle119999,“;”,$enclosure='”)!==FALSE){
//如果要在最后一列中显示id
$data[]=($counter==0)?“唯一ID”:$counter;
//或者,对于第一列的id
//($counter==0)?array_unshift($data,“uniqueid”):array_unshift($data,$counter);
fputcsv($handle2,$data,$delimiter=“;”,$enclosure=”);
$counter++;
}
fclose(handle2美元);
}
fclose(handle1美元);
回声“警报”(“成功”)”);
}
}

对不起,你的问题对我来说没有多大意义。放入cvs文件的数据取决于$Data变量中的内容。那么,您是在问如何修改$data?第二个问题-所需的数据类型“uniqueid”是什么?是的,我想修改$data以获得一个名为“uniqueid”的标题,每行末尾的值应该是计数器值…..我不知道您对数据类型的确切含义,但我的uniqeid内容是数字…..uniqueid VARCHAR(11)字符集utf8 COLLATE utf8\u general\u ci NOT NULL,哇,谢谢你看起来不错…我会测试它…谢谢你花时间回答:)那么,它有用吗?如果您对答案感到满意,您应该将其升级(即完成案例)Hy Honza…..为迟交的答案进行Sry…不,不是真的,我使用array_unshift($data,“uniqueid”)进行了尝试;但这会在每一行的末尾添加唯一ID…..我现在用我的旧计数器解决了问题,添加计数器后,我现在用fopen…fread和str_replace()编辑文件并根据我的需要设置整个csv文件的第一行…现在我在mysql中的导入运行得很好…但是upvote,因为您是唯一一个响应的人…再次感谢您的帮助或尝试…;)$data数组比一维数组更复杂?从你发布的代码来看,这并不明显。我相信有一种更方便的方法来解决你的案子。请更准确地描述$data数组结构,我将更新答案。我更新了我的帖子,以便您可以看到iam使用的代码…这将向我的csv添加一个包含计数器值的新列…逐行…因此这些行是countet,我有一个主键来处理文件和mysql…我需要的是一个headline/firstline/header为新专栏命名为uniqueid…但我的问题现在用另一种方法解决了,所以不再需要了