Php 解析国家证券交易所数据并创建图表

Php 解析国家证券交易所数据并创建图表,php,jquery,parsing,stock,Php,Jquery,Parsing,Stock,我正在尝试获取全国证券交易所的数据,并使用谷歌图表创建图表。但我不知道如何解析使用api获得的数据。这是api的代码。任何帮助都将不胜感激。输出如下所示 如果您想正确地完成这项工作,您应该在服务器端完成这项工作,请参阅以下答案: 否则,这将以更快的方式解决您的问题: <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <script

我正在尝试获取全国证券交易所的数据,并使用谷歌图表创建图表。但我不知道如何解析使用api获得的数据。这是api的代码。任何帮助都将不胜感激。输出如下所示


如果您想正确地完成这项工作,您应该在服务器端完成这项工作,请参阅以下答案:

否则,这将以更快的方式解决您的问题:

<html>
<head>
   <meta content="text/html; charset=UTF-8" http-equiv="content-type">
   <script src="//code.jquery.com/jquery-1.11.0.js" type="text/javascript"></script>
   <script type="text/javascript">
      $(window).load(function(){
         var strikePrice = new Array();
         $(".opttbldata").find("tr").each( function (row, currentTR) {
            if (row > 1) { // Avoid first two header rows (0 based index)
                var columnContent = $(currentTR).find("td:eq( 6 )").text();
                strikePrice[row-2] = (columnContent=="-"?" 0":columnContent); // Strike price column (0 based index)
            }
         });
         $("#NSEIndiaData").remove(); // Get rid of the loaded page/data to uncluter the DOM
         alert(strikePrice);
      });
   </script>
</head>

<body>
   <?php
      $curlSession = curl_init();
      curl_setopt($curlSession, CURLOPT_URL, 'http://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?symbolCode=-10007&symbol=NIFTY&symbol=NIFTY&instrument=OPTIDX&date=-&segmentLink=17&segmentLink=17');
      curl_setopt($curlSession,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
      curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
      curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
      $homepage = curl_exec($curlSession);
   ?>

   <div id="NSEIndiaData" style="display: none;">
      <?php var_dump($homepage); ?>
   </div>

   <?php
      curl_close($curlSession);
   ?>
</body>
</html>

第12列的所有值都将放在一个基于0索引的数组中,您可以在以后随意操作该数组。

输出是什么样子的?您对哪列数据感兴趣?我已经将输出的外观链接放在了上面,这没问题。但您希望解析出哪一列并绘制图表?这里有无数列。我想解析列Strike Price假设我想解析Ask Qty列,它就在Strike Price之前,我需要在代码中做什么更改。Regardsi试图进行这样的更改,但它不起作用strikePrice[row-2]=$currentTR.findtd:eq 10.text;到底是什么不起作用?它很好用。当然,也有一些单元格有破折号,我想这意味着它是零。是的,所以我想得到0,而不是显示警报中的破折号。我完全同意你帮了大忙
<html>
<head>
   <meta content="text/html; charset=UTF-8" http-equiv="content-type">
   <script src="//code.jquery.com/jquery-1.11.0.js" type="text/javascript"></script>
   <script type="text/javascript">
      $(window).load(function(){
         var strikePrice = new Array();
         $(".opttbldata").find("tr").each( function (row, currentTR) {
            if (row > 1) { // Avoid first two header rows (0 based index)
                var columnContent = $(currentTR).find("td:eq( 6 )").text();
                strikePrice[row-2] = (columnContent=="-"?" 0":columnContent); // Strike price column (0 based index)
            }
         });
         $("#NSEIndiaData").remove(); // Get rid of the loaded page/data to uncluter the DOM
         alert(strikePrice);
      });
   </script>
</head>

<body>
   <?php
      $curlSession = curl_init();
      curl_setopt($curlSession, CURLOPT_URL, 'http://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?symbolCode=-10007&symbol=NIFTY&symbol=NIFTY&instrument=OPTIDX&date=-&segmentLink=17&segmentLink=17');
      curl_setopt($curlSession,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
      curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
      curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
      $homepage = curl_exec($curlSession);
   ?>

   <div id="NSEIndiaData" style="display: none;">
      <?php var_dump($homepage); ?>
   </div>

   <?php
      curl_close($curlSession);
   ?>
</body>
</html>