仅在Yahoo Historical API上获取30天的数据

时间:2015-11-25 16:11:51

标签: php mysql api yahoo-api

我尝试使用此网址作为示例访问Yahoo&#api(使用PHP / Mysql实现)的历史数据:

$filesize = 2000;
$handle = fopen($url, "r");
$raw_quote_data = fread($handle, $filesize);
echo $raw_quote_data;
fclose($handle);

这是我用来访问它的代码:

self.viewDidLoad()

echo语句用于错误检查,以确保在将数据存储到数据库之前获取所有数据。但是,返回的$ raw_quote_data只包含输入时间范围的最后30天的数据。因为我输入的日期范围是从2014年1月1日到2015年1月1日,所以应该返回365天的数据。那么我做错了什么?其余数据在哪里?

我尝试的第一件事当然是更改文件大小,这对输出没有任何影响。

2 个答案:

答案 0 :(得分:1)

改为使用file_get_contents()

$raw_quote_data =  file_get_contents($url);

答案 1 :(得分:0)

您正在请求一个15kb的文件,只读取2000字节。另请注意,当您手动从缓冲区读取时,所有数据可能尚未到达。这就是为什么"它没有任何区别。"

请改为尝试:

set_time_limit(0);
$file = @fopen($file_path,"rb");
while(!feof($file))
{
    print(@fread($file, 1024*8));
    ob_flush();
    flush();
}

有关详细信息,请参阅this article

或者 file_get_contents 可能是一种更简单的方法。