写入csv文件

时间:2013-02-15 16:31:23

标签: php fputcsv

getHistory从Yahoo finance API下载CSV文件,我正在尝试获取CSV文件,并在文件中插入每个条目的符号。完成后,我想将CSV文件写回$ symbol.csv。我的数据是我想要的方式,我似乎无法将其写入CSV文件。我究竟做错了什么?或者有更好的方法来解决这个问题吗?

$row = 1;
if (($handle = fopen(getHistory("T","2010-06-1"), "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        if($row = 1){array_unshift($data,"Symbol"); }
        else  { array_unshift($data, "T"); }
        $fp = fopen('t.csv', 'w');
        fputcsv($fp, $data);
        fclose($fp);
        $row++;
    }
}
fclose($handle);

1 个答案:

答案 0 :(得分:1)

在循环中,您将在每次迭代上打开和关闭文件。你应该在循环之前打开csv文件,添加它,然后在循环完成时关闭它。

此外,您应该使用=====进行比较。

$row = 1;
if (($handle = fopen(getHistory("T","2010-06-1"), "r")) !== FALSE) {
    // This truncates the file to zero length
    // so, we only need to do this once, before the loop
    $fp = fopen('t.csv', 'w');
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        if($row === 1){array_unshift($data,"Symbol"); }
        else  { array_unshift($data, "T"); }
        fputcsv($fp, $data);
        $row++;
    }
    // Close it once we're all done
    fclose($fp);
}
fclose($handle);