如何从.csv文件中检索未由分隔符分隔的单个值?

时间:2014-08-06 04:12:54

标签: php file csv implode

我正在使用file_put_contents函数将变量写入文件:

file_put_contents ( 'C:/myfiledata.csv' , $qtype, FILE_APPEND );

使用$qtype的不同值反复调用此函数。因此,它们会附加到文件的现有内容中。

所以一次调用三次写入以下内容,例如

WaterMelonBlueBerryBlackBerry

问题在于,当我通过以下代码读取文件的内容时,输出为:

Array ( [0] => WaterMelonBlueBerryBlackBerry ) $qtype: WaterMelonBlueBerryBlackBerry 0 1

我需要从数组中检索单个值(或$qtype)。既然这些值没有被commas或其他东西分隔,我该怎么办呢?

$file = fopen('C:/myfiledata.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements
  print_r($line); //check
  $qtype = implode(',' , $line );
  echo '$qtype: '.$qtype; //check
}

fclose($file);

echo "\r\n\n";

echo file_put_contents ( 'C:/myfiledata.csv', '');

echo "\r\n\n";

echo unlink('C:/myfiledata.csv'); //echo is for check

编辑: - 我们可以看到fgetcsv($file)获得的数组是Array ( [0] => WaterMelonBlueBerryBlackBerry )。为什么我没有得到像

这样的东西

Array ( [0] => WaterMelon, [1]=>BlueBerry, [2]=>BlackBerry )

我觉得代码有问题? 由于通过多次调用file_put_contents ('C:/myfiledata.csv', $qtype, FILE_APPEND)将值写入CSV文件,因此单个调用会写入一个值。


修改: -

enter image description here

1 个答案:

答案 0 :(得分:1)

只需在放入内容时附加逗号,如果您希望所有内容都以逗号分隔的单行显示。或者您可以在下面添加换行符字符

// for comma
file_put_contents ( 'C:/myfiledata.csv' , $qtype.',', FILE_APPEND );

// for new line
file_put_contents ( 'C:/myfiledata.csv' , $qtype."\n", FILE_APPEND );