Только 30 дней данных на Yahoo Historical API

Я пытаюсь получить доступ к историческим данным на API Yahoo (с реализацией PHP / Mysql), используя этот URL в качестве примера:

$url = http://ichart.finance.yahoo.com/table.csv?s=INTC&c=2014&f=2015&a=0&d=0&b=1&e=1&g=d&ignore=.csv

Это код, который я использовал для доступа к нему:

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

Оператор echo предназначен для проверки ошибок, чтобы убедиться, что я получаю все данные, прежде чем сохранить их в своей базе данных. Однако возвращаемое значение $ raw_quote_data содержит данные только за последние 30 дней введенного временного диапазона. Поскольку введенный мною диапазон дат был с 1 января 2014 года по 1 января 2015 года, он должен вернуть данные за 365 дней. Так что я делаю не так? Куда идут остальные данные?

Первое, что я попробовал, конечно, было изменение размера файла, что никак не влияет на вывод.

1

Решение

использование file_get_contents() вместо.

$raw_quote_data =  file_get_contents($url);
1

Другие решения

Вы запрашиваете файл 15 КБ и читаете только 2000 байтов. Также обратите внимание, что когда вы вручную читаете из буфера, все данные, возможно, еще не поступили. Вот почему «это не имеет значения».

Попробуйте это вместо этого:

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

Увидеть Эта статья для дополнительной информации.

альтернативно file_get_contents может быть более простой подход.

0

По вопросам рекламы [email protected]