我正在使用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文件,因此单个调用会写入一个值。
修改: -
答案 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 );