0

我有一个 php 文件,其中我试图获取我想在 html 表格中逐行打印的在线数据/股票报价,这是我的代码:

{
    $url = 'http://download.finance.yahoo.com/d/quotes.csv?
    s=^AORD+BHP.AX+BLT.L+AAPL&f=nd1l1';
    $data = file_get_contents($url);

    echo $data;
}

输出为:"ALL ORDINARIES","9/7/2017",5753.80 "BHP BLT FPO","9/7/2017",27.33 "BHP BILLITON PLC ORD $0.50","9/7/2017", 1457.50 "苹果公司","9/7/2017",161.26

我想要的是这样的:

"ALL ORDINARIES","9/7/2017",5753.80
"BHP BLT FPO","9/7/2017",27.33
"BHP BILLITON PLC ORD $0.50","9/7/2017",1457.50
"Apple Inc.","9/7/2017",161.26

我试着做:

echo $data[1];

但结果是:“A”

我应该如何解决这个问题?谢谢!

4

2 回答 2

0

$data是一个字符串,而不是一个数组。用于nl2br()将数据中的换行符转换为 HTML<br>标记:

echo nl2br($data);

或者将其打印在一个<pre>块中以指示数据已格式化并且不应被浏览器包装。

echo '<pre>' . $data . '</pre>';
于 2017-09-07T22:59:36.373 回答
0

当前,$data是一个字符串,它给出$data[0] == '"'; $data[1] == 'A'; $data[2] == 'L', $data[3] == 'L' ...整个字符串。

由于您正在提取csv文件,$data = str_getcsv($data)因此会将其中包含的字符串转换$data为数组。请参阅http://php.net/manual/en/function.str-getcsv.php

于 2017-09-07T23:05:21.320 回答