1

getHistory は Yahoo ファイナンス 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);
4

1 に答える 1

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);
于 2013-02-15T16:42:54.050 に答える