2012-05-11 2 views
-5

저는 약 한 달 동안이 야후 API에 대해 궁금해했습니다. 나는 yql을 얻었고 주가 데이터를 가져왔다.php를 사용하여 json에서 배열을 가져 오는 방법

내 배열은 다음과 같습니다 : 배열에서

Ask 
Bid 
AskRealtime 
BidRealtime 
LastTradeDate 
LastTradePriceOnly 
LastTradeTime 

및 자동 새로 고침 HTML 테이블에 인쇄 :

<table width="200" border="1"> 
    <tr> 
    <td>Ask</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>BID</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>AskRealime</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>BidRealtime</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradeDate</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradePriceOnly</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradeTime</td> 
    <td>Value</td> 
    </tr> 
</table> 

Array 
(
    [query] => Array 
    (
     [count] => 5 
     [created] => 2012-05-11T01:14:55Z 
     [lang] => en-US 
     [diagnostics] => Array 
     (
      [publiclyCallable] => true 
      [redirect] => Array 
      (
       [from] => http://datatables.org/alltables.env 
       [status] => 301 
       [content] => http://www.datatables.org/alltables.env 
      ) 

      [url] => Array 
      (
       [0] => Array 
       (
        [execution-start-time] => 425 
        [execution-stop-time] => 865 
        [execution-time] => 440 
        [proxy] => DEFAULT 
        [content] => http://datatables.org/alltables.env 
       ) 

       [1] => Array 
       (
        [execution-start-time] => 884 
        [execution-stop-time] => 1097 
        [execution-time] => 213 
        [proxy] => DEFAULT 
        [content] => http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml 
       ) 

       [2] => Array 
       (
        [execution-start-time] => 1307 
        [execution-stop-time] => 1307 
        [execution-time] => 0 
        [proxy] => DEFAULT 
        [content] => http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX 
       ) 
      ) 

      [query] => Array 
      (
       [execution-start-time] => 1105 
       [execution-stop-time] => 1308 
       [execution-time] => 203 
       [params] => {url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]} 
       [content] => select * from csv where [email protected] and columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield' 
       ) 

       [javascript] => Array 
       (
        [execution-time] => 266 
        [instructions-used] => 302754 
        [table-name] => yahoo.finance.quotes 
       ) 

       [warning] => Unable to sort response according to field 'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime'. 
       [user-time] => 1373 
       [service-time] => 653 
       [build-version] => 27222 
      ) 

      [results] => Array 
      (
       [quote] => Array 
       (
        [0] => Array 
        (
         [symbol] => XAUUSD=X 
         [Bid] => 1590.9498 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1590.5499 
         [LastTradeTime] => 9:12pm 
         [Ask] => 1590.15 
        ) 

        [1] => Array 
        (
         [symbol] => XAGUSD=X 
         [Bid] => 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/10/2012 
         [LastTradePriceOnly] => 29.136 
         [LastTradeTime] => 5:27pm 
         [Ask] => 
        ) 

        [2] => Array 
        (
         [symbol] => PLN12.NYM 
         [Bid] => 
         [AskRealtime] => 1486.50 
         [BidRealtime] => 1486.00 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1486.00 
         [LastTradeTime] => 8:44pm 
         [Ask] => 
        ) 

        [3] => Array 
        (
         [symbol] => PAK12.NYM 
         [Bid] => 
         [AskRealtime] => 616.00 
         [BidRealtime] => 609.40 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 658.80 
         [LastTradeTime] => 8:00pm 
         [Ask] => 
        ) 

        [4] => Array 
        (
         [symbol] => USDCAD=X 
         [Bid] => 1.0033 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1.0034 
         [LastTradeTime] => 9:13pm 
         [Ask] => 1.0035 
        ) 
       ) 
      ) 
     ) 
    ) 

내가 다음 데이터를 가져 오려는

제안 사항?

foreach ($array['query']['results']['quote'] as $quote) { 
    echo $quote['Ask']; 
    echo $quote['Bid']; 
    ... 
} 

$array이 데이터가 속해있는 변수의 이름 인 : 당신은 따라서 통해 원하는 데이터 및 루프에 액세스 할 수 있습니다처럼

+0

정확히 무엇이 문제입니까? 데이터 가져 오기 또는 html 만들기? – JJJ

+0

다차원 배열의 특정 부분을 얻는 방법에 대해 묻고 있습니까? – arma

+0

HTML 표의 상대 td에서 Ask, bid, AskRealtime의 데이터를 인쇄하고 싶습니다. –

답변

1

보인다. 나는 당신에게 HTML의 건설을 맡길 것이다.

+0

많은 많은 당신에게 –

+0

안녕 deceze ... ERR가 발생했습니다! 경고 : 115 번 라인의 /public_html/api/index.php에서 foreach()에 잘못된 인수가 제공되었습니다. –

+0

직접 디버깅을 시도해보십시오. 'var_dump ($ array)'와'var_dump ($ array [ 'query'])'와 같은 하위 키를 사용하여 처리 할 항목과 액세스해야하는 키를 알아낼 수 있습니다. – deceze

관련 문제