gpt4 book ai didi

PHP 从 URL 中获取 CSV,加载到数组中,格式化

转载 作者:可可西里 更新时间:2023-11-01 13:47:09 28 4
gpt4 key购买 nike

我正在尝试编写一个脚本来以 csv 格式从雅虎财经下载历史数据。我的脚本成功地将数据加载到一个数组中,但我遇到了两个问题。首先是,尽管为它创建了一个从雅虎提取的日期范围,但我一直在获取该股票的全部历史数据,但我不确定为什么。我只希望从当天开始计算过去 6 个月的数据。其次,我能够使用 str_getcsv 将数据加载到一个数组中,但是我一直无法创建一个循环来将它设置在一个表中,第一行是表列的标题,其余的是有组织的按行中的日期。

代码如下:

<?php

$stock = "AAPL";
$date = strtotime(date('Y-m-d') . ' -1 month');
$date2 = strtotime(date('Y-m-d') . ' -6 months');

$a = (date('m', $date));
$b = (date('d', $date));
$c =(date('Y', $date));
$d = (date('m', $date2));
$e = (date('d', $date2));
$f =(date('Y', $date2));

$s = str_getcsv(file_get_contents("http://ichart.yahoo.com/table.csv?s=$stock&a=$d&b=e&c=$f&d=$a&e=$b&f=$c&g=d"));


Stock:echo $stock;

echo '<pre>';
print_r($s);
echo '</pre>';
?>

这是输出:

AAPL

Array
(
[0] => Date
[1] => Open
[2] => High
[3] => Low
[4] => Close
[5] => Volume
[6] => Adj Close
2014-10-10
[7] => 100.69
[8] => 102.03
[9] => 100.30
[10] => 100.73
[11] => 66270200
[12] => 100.73
2014-10-09
[13] => 101.54
[14] => 102.38
[15] => 100.61
[16] => 101.02
[17] => 77312200
[18] => 101.02
2014-10-08
[19] => 98.76
[20] => 101.11
[21] => 98.31
[22] => 100.80
[23] => 57364800
[24] => 100.80
2014-10-07
[25] => 99.43
[26] => 100.12
[27] => 98.73
[28] => 98.75
[29] => 42068200
[30] => 98.75

等...

如有任何帮助,我们将不胜感激!

最佳答案

您在 b=e 的 url 中漏掉了美元符号。这是将其排成一行的代码:

$data = file_get_contents("http://ichart.yahoo.com/table.csv?s=$stock&a=$d&b=$e&c=$f&d=$a&e=$b&f=$c&g=d");
$rows = explode("\n",$data);
$s = array();
foreach($rows as $row) {
$s[] = str_getcsv($row);
}

关于PHP 从 URL 中获取 CSV,加载到数组中,格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com