2012-05-12 13 views
0

xmlからセッションにデータを引き出し、divで印刷するのにこれを試しましたが、空白のページが表示されました。別の印刷の仕方が、それでも同じ結果が..空白のページでPHPを使ってxmlデータをグラブしてdivに印刷する

<?php 
session_start(); 

$yql_base_url = "http://query.yahooapis.com/v1/public/yql"; 
$yql_query = "select * from yahoo.finance.quotes where symbol in ('XAUUSD=X','XAGUSD=X','PLN12.NYM','PAK12.NYM','USDCAD=X')"; 
$yql_query_url = $yql_base_url . "?q=" . urlencode($yql_query); 
$yql_query_url .= "&env=http://datatables.org/alltables.env"; 
$yql_query_url .= "&format=json"; 
$session = curl_init($yql_query_url); 
curl_setopt($session, CURLOPT_RETURNTRANSFER,true);  
$json = curl_exec($session); 
$phpObj = json_decode($json); 
if(!is_null($phpObj->query->results)){ 
} 
if(!is_null($phpObj->query->results)){ 
    foreach($phpObj->query->results->quote as $quotes){ 
     $quotes = $_SESSION['']; 
     $_SESSION['Ask'] = $Ask; 
     $_SESSION['Bid'] = $Bid; 
     $_SESSION['AskRealtime'] = $AskRealtime; 
     $_SESSION['BidRealtime'] = $BidRealtime; 
     $_SESSION['LastTradeDate'] = $LastTradeDate; 
     $_SESSION['LastTradePriceOnly'] = $LastTradePriceOnly; 
     $_SESSION['LastTradeTime'] = $LastTradeTime; 
    } 
} 
?> 
<body> 
<div> 
<ul> 
<li><?php echo $_SESSION['Ask'];?></li> 
<li><?php echo $_SESSION['Bid'];?></li> 
<li><?php echo $_SESSION['AskRealtime'];?></li> 
<li><?php echo $_SESSION['BidRealtime'];?></li> 
<li><?php echo $_SESSION['LastTradeDate'];?></li> 
<li><?php echo $_SESSION['LastTradePriceOnly'];?></li> 
<li><?php echo $_SESSION['LastTradeTime'];?></li> 
</ul> 
</div> 
</body> 

いずれかにしてください

を示唆することができます私もセクション「foreachの($ ...事前で

foreach($phpObj->query->results->quote as $quotes){ 
     echo $quotes['Ask']; 
     echo $quotes['Bid']; 
     echo $quotes['AskRealtime']; 
     echo $quotes['BidRealtime']; 
     echo $quotes['LastTradeDate']; 
     echo $quotes['LastTradePriceOnly']; 
     echo $quotes['LastTradeTime']; 
     } 

感謝を編集してみました YQL

<query yahoo:count="5" yahoo:created="2012-05-12T21:27:10Z" yahoo:lang="en-US"> 
<diagnostics> 
<publiclyCallable>true</publiclyCallable> 
<redirect from="http://datatables.org/alltables.env" status="301">http://www.datatables.org/alltables.env</redirect> 
<url execution-start-time="404" execution-stop-time="830" execution-time="426" proxy="DEFAULT">http://datatables.org/alltables.env</url> 
<url execution-start-time="846" execution-stop-time="1256" execution-time="410" proxy="DEFAULT">http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml</url> 
<url execution-start-time="1464" execution-stop-time="1465" execution-time="1" proxy="DEFAULT">http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX</url> 
<query execution-start-time="1262" execution-stop-time="1465" 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]}">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'</query> 
<javascript execution-time="260" instructions-used="302744" table-name="yahoo.finance.quotes"/> 
<warning>Unable to sort response according to field 'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime'.</warning> 
<user-time>1525</user-time> 
<service-time>837</service-time> 
<build-version>27222</build-version> 
</diagnostics> 
<results> 
<quote symbol="XAUUSD=X"> 
    <Bid>1585.30</Bid> 
    <AskRealtime/> 
    <BidRealtime/> 
    <LastTradeDate>5/11/2012</LastTradeDate> 
    <LastTradePriceOnly>1580.3002</LastTradePriceOnly> 
    <LastTradeTime>5:15pm</LastTradeTime> 
    <Ask>1575.30</Ask> 
</quote> 
<quote symbol="XAGUSD=X"> 
    <Bid/> 
    <AskRealtime/> 
    <BidRealtime/> 
    <LastTradeDate>5/11/2012</LastTradeDate> 
    <LastTradePriceOnly>28.858</LastTradePriceOnly> 
    <LastTradeTime>5:39pm</LastTradeTime> 
    <Ask/> 
</quote> 
<quote symbol="PLN12.NYM"> 
    <Bid/> 
    <AskRealtime>1478.60</AskRealtime> 
    <BidRealtime>1462.90</BidRealtime> 
    <LastTradeDate>5/11/2012</LastTradeDate> 
    <LastTradePriceOnly>1465.30</LastTradePriceOnly> 
    <LastTradeTime>5:02pm</LastTradeTime> 
    <Ask/> 
</quote> 
<quote symbol="PAK12.NYM"> 
    <Bid/> 
    <AskRealtime>0.00</AskRealtime> 
    <BidRealtime>0.00</BidRealtime> 
    <LastTradeDate>3/23/2012</LastTradeDate> 
    <LastTradePriceOnly>658.80</LastTradePriceOnly> 
    <LastTradeTime>7:12am</LastTradeTime> 
    <Ask/> 
</quote> 
<quote symbol="USDCAD=X"> 
    <Bid>1.0005</Bid> 
    <AskRealtime/> 
    <BidRealtime/> 
    <LastTradeDate>5/11/2012</LastTradeDate> 
    <LastTradePriceOnly>1.001</LastTradePriceOnly> 
    <LastTradeTime>5:55pm</LastTradeTime> 
    <Ask>1.0015</Ask> 
</quote> 

によって生成されたXML私はすべての<引用記号からすべて、入札、AskRealtimeを掲載し...値を取得したい= "..">

+0

これは、あなたが生成するクエリのためにYahooから戻ってきた結果です:{"error":{"lang": "en-US"、 "description": "テーブルyahoo.financeの定義が見つかりません。引用符 "}} – Ansari

+0

@Ansariだからあなたが提案するもの..株式データを取得するために私たちは支払う.. –

答えて

0

これを追加curl_initの前の行

$yql_query_url .= "&env=http://datatables.org/alltables.env"; 

これを行うと、返されたデータは$ phpObjに正しく解析されます。 空白のページが表示されるのは、$ Ask、$ Bid、$ AskRealTimeなどの変数を決して設定していないが、それらをセッション変数に割り当てるためです。このようになり

$quotes = $_SESSION['']; 

と次の行のそれぞれを変更します:

は、この行を削除し、その問題を解決するために、私はあなたが何をしようとして理解していない

$_SESSION['Ask'] = $quotes->Ask; 

どのようにデータを格納しようとしているのか - これらのセッション変数はループの繰り返しごとに上書きされます。とにかく、それはあなたのビジネスです。データを適切に抽出する方法を示しました。あなたはそれをどのように保存したいかを理解することができます。

+0

まだ空白のページ –

+0

編集された答え... – Ansari

+0

これは多く.. mnay thaks ..それは働いた... –

関連する問題