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);
答案 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);