2017-02-03 32 views
0

海兰与去年头先改变有添加1号线与种台,并在PHP中使用fputcsv

希望有人为能帮助我.....

我写了一个小脚本将采取一个CSV从网址...添加行并将其导入到mysql数据库...

所有工作正常,但有一件事

如何更改标题

的内容我用这件T O写我的内容到一个新文件

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

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

这将我的CSV文件的最后一行后面添加一行计数器(我的CSV没有唯一的ID,所以我需要增加一个之前,我可以导入CSV我的需求)

它工作正常,但我已经通过壳CSV文件直接,但ID应该直接在脚本

新添加的行开始在第一个标题为0,但它应该开始做改变一些东西像uniqueid或别的名字,而不是柜台值...但我不知道我该怎么做...希望有人明白我的意思

instead of 

0 
1 
2 
3++ 

i need somthing heading like 

uniqueid 
1 
2 
3++ 

我也想改变$的航向数据[1]的$标题数据[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>'; 
    } 
    } 
+0

对不起,但你的问题对我没有多大意义。放入CVS文件中的数据取决于您在$ data变量中的内容。那么你在问如何修改$数据? –

+0

第二个问题 - 所需数据类型“uniqueid”是什么? –

+0

是的,我想修改$数据来获得名称为“uniqueid”的标题,并且每行结尾的值应该是计数器值..... idont确切地知道您的数据类型是什么意思,但我的uniqeid内容是数字..... uniqueid VARCHAR(11)字符集UTF8 COLLATE utf8_general_ci NOT NULL, – CryptoX

回答

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>'; 
    } 
} 
+0

哇谢谢你,看起来不错...我会测试它...谢谢你花时间回答:) – CryptoX

+0

所以,是它有帮助吗?如果你满意答案,你应该upvote它(aka结束案件) –

+0

Hy Honza ..... Sry为已故的答案...不,不,我试着用array_unshift($ data,“uniqueid” );但这增加了uniqueid在每一行的结尾.....我解决了我的问题,现在我的旧计数器解决方案,并且在我添加计数器后,我现在用fopen编辑文件... fread和str_replace()并设置整个CSV文件的第一行到我的需要....现在我的导入在MySQL运行完美...但upvote,因为你是唯一一个谁anser ....再次感谢你的帮助或尝试...; ) – CryptoX