PHP解析难题 - "缺少符号列出"

时间:2011-03-02 17:55:19

标签: php

我试图通过获取股票报价来访问雅虎网站:

http://de.finance.yahoo.com/d/quotes.csv?s=^DJI&f=nsl1op&e=.csv

它似乎没有下载任何数据。我得到“遗失符号列表。”。奇怪的b / c过去常常起作用了!

<?php

function market_value($s) {

    $records= fopen ("http://quote.yahoo.com/d/quotes.csv?s=$s&f=nsl1&e=.csv");
    $contents = fread ($records);
    fclose ($records);

    $data = str_replace ("\"", "", $data);
    $data = explode (",", $data);

    $trade= $data[2];

    return (".$trade.")";
}

2 个答案:

答案 0 :(得分:1)

似乎无法从雅虎查询

^DJIYou should use INDU。尝试下载

http://finance.yahoo.com/d/quotes.csv?s=INDU,GOOG,MSFT&f=nsl1op&e=.csv

这应该返回类似

的内容
"Dow Jones Industr","^DJI",12069.94,12057.34,12058.02
"Google Inc.","GOOG",601.74,600.06,600.76
"Microsoft Corpora","MSFT",26.13,26.10,26.16

答案 1 :(得分:0)

尝试从Googles HTML获取DJI引用

这是.NET C#中的低效示例(不知道php):

    public async Task<string> MakeGoogleDJIWebRequest()
    {
        string response = await _httpClient.GetStringAsync("http://www.google.com/finance?q=DJI");
        string [] myString = Regex.Split(response, "<span id=\"ref_983582_l\">");
        string [] myString2 = Regex.Split(myString[1], "</span>");
        string [] myString3 = Regex.Split(response, "ref_983582_c\">");
        string [] plusOrMinus = Regex.Split(myString3[1], "</span>");
        string DJI = myString2[0]+ " " + plusOrMinus[0];
        return DJI;
    }

如果您只想要DJI的值而不是+。/ - 只是不要将上面的plusOrMinus [0]添加到返回字符串中。