PHP - получение котировок акций онлайн

У меня есть файл 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;
}

и вывод: "ВСЕ ОБЫЧНЫЕ","9/7/2017",5753.80 "BHP BLT FPO","7/7/2017", 27,33 "BHP BILLITON PLC ORD $0,50", "7/7/2017",1457.50 "Apple Inc.","7.09.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];

но результат: "А"

каким должен быть мой подход к этому? Спасибо!

2 ответа

$data это строка, а не массив. использование nl2br() преобразовать перевод строки в данных в HTML <br> теги:

echo nl2br($data);

Или напечатайте это в <pre> блок, чтобы указать, что данные отформатированы и не должны быть обернуты браузером.

echo '<pre>' . $data . '</pre>';

В настоящее время, $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.

Другие вопросы по тегам