如何使用PHP从XML和/或JSON中提取/会话数据

时间:2012-05-10 21:12:41

标签: php xml json yql

我插入了以下命令 developer.yahoo.com/yql/console/

yql = select * from yahoo.finance.quotes where symbol in ("XAUUSD=X","XAGUSD=X")

但显示我不需要的所有数据。 XML Code Generated by Yahoo YQLJson Code Generated by Yahoo YQL

我只想提出Ask,Bid,AskRealtime,BidRealtime,LastTradeRealtimeWithTime,LastTradeWithTime,LastTradePriceOnly。通过使用php会话,我想在同一页面中将抓取的数据插入到html table / div中。

不知道XML是否更容易提取数据或Json。这对我来说更容易获取字段的数据并对其进行会话并将其粘贴到html表中。

并且还希望在雅虎刷新数据时抓取的数据可以流式传输或自动刷新。
找到了这个链接
streamerapi.finance.yahoo.com

但不知道如何工作 请帮忙

我试过这个但没有打印

<script type='text/javascript'>  
  function forex(o){  
    var items = o.query.results.item;  
    var output = '';  
    var no_items=items.length;  
    for(var i=0;i<no_items;i++){  
      var Ask = items[i].Ask;
      var AskRealtime = items[i].AskRealtime;
      var BidRealtime = items[i].BidRealtime;
      var LastTradeDate = items[i].LastTradeDate;
      var LastTradePriceOnly = items[i].LastTradePriceOnly;
      var LastTradeTime = items[i].LastTradeTime;
      output += Ask + AskRealtime + BidRealtime + LastTradeDate + LastTradePriceOnly+ LastTradeTime;  
      +title + desc ; 
    }  
    // Place news stories in div tag  
    document.getElementById('results').innerHTML = output;    
  }  
</head>

2 个答案:

答案 0 :(得分:1)

查看json_decode(); !效果很好。

$x = json_decode($json_string);         // gives back an array
$x = json_decode($json_string, true);   // gives back an object

这件事给我带来了很多次......

答案 1 :(得分:0)

使用

http://api.jquery.com/jQuery.getJSON/

并把它放在计时器上。如果您记录响应(console.log),您将看到一个可以遍历的对象,以获得您想要的内容。

它也需要是一个有效的json,所以确保它是JSON Lint:

http://jsonlint.com/

如果不是(我认为通常人们使用字符串为有效的jsons加前缀)那么你将不得不使用PHP来获取json(file_get_contents或CURL)并将响应切断,直到它是一个有效的json。