使用php获取xml数据并将其打印到div时的空白页
我尝试在会话中将数据从xml提取到php并在div中打印,但它显示的是空白页面。。我试过不同的方法。。下面是另一种打印方式,但结果仍然相同使用php获取xml数据并将其打印到div时的空白页,php,xml,json,session,curl,Php,Xml,Json,Session,Curl,我尝试在会话中将数据从xml提取到php并在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','PL
<?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>
提前感谢由YQL生成的XML
<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 url=@url 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>
真的
http://www.datatables.org/alltables.env
http://datatables.org/alltables.env
http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml
http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.纽约商品交易所,巴基斯坦12.纽约商品交易所,USDCAD%3DX
从csv中选择*其中url=@url和columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningShare,ErrorIndicationReturned for SymbolChangedInValid,EPSEstimateCurrentYear,EPSEstimateNextYear,Epsestimate下一个季度、DaysLow、DaysHigh、YearLow、YearHigh、HoldingGainPercentralTime、AnnualizedGain、HoldingGainPercentralTime、HoldingGainRealTime、MoreInfo、OrderBookRealtime、市值、MarketCapRealtime、EBITDA、ChangeFromYearLow、ChangeFromYearLow、ChangeFromYearLow、LastTradeRealtimeWithTime、ChangepercentralTime、ChangeFromYearHigh、,PercebtChangefrom Year High、LastTrade With Time、LastTrade Price Only、High Limit、Low Limit、Days Range、Days Range RealTime、Fifty Day Moving Average、Two Hunde Day Moving Average、Changefrom Two Hunde Day Moving Average、百分比Changefrom Two Hunde Day Moving Average、Name、Notes、Open、Previous Close、,已支付价格、变动百分比、价格销售、价格手册、ExDividendDate、Operatio、DividendPayDate、OperatioRealTime、PEGRatio、价格估计当前年度、价格估计下一年度、符号、已分配股份、短期比率、上次交易时间、股票趋势、OneyrTargetPrice、交易量、持有价值、持有价值实时、年范围、日价值变化、日价值变化实时、证券交易所、,分割收益'
无法根据字段“Ask、Bid、AskRealtime、BidRealtime、LastTradeDate、LastTradePriceOnly、LastTradeTime”对响应进行排序。
1525
837
27222
1585.30
5/11/2012
1580.3002
下午5:15
1575.30
5/11/2012
28.858
下午5:39
1478.60
1462.90
5/11/2012
1465.30
下午5:02
0
0
3/23/2012
658.80
上午7:12
1.0005
5/11/2012
1.001
下午5:55
1.0015
我想抓住所有的询问,出价,询问时间。。。所有
中的值在curl\u init之前添加此行如果执行此操作,返回的数据将正确解析为$phpObj。 现在出现空白页的原因是,您从未设置$Ask、$Bid、$AskRealTime等变量,而是将它们分配给会话变量 要解决此问题,请删除此行:$yql_query_url .= "&env=http://datatables.org/alltables.env";
并将以下每一行更改为如下所示:$quotes = $_SESSION[''];
$_SESSION['Ask'] = $quotes->Ask;
我不明白您想做什么,或者如何存储数据——这些会话变量在循环的每次迭代中都会被覆盖。不管怎样,那是你的事。我已经向您展示了如何正确提取数据。您可以计算出如何存储它。这是您从Yahoo返回的查询结果:{“error”:{“lang”:“en-US”,“description”:“未找到Yahoo.finance.quotes表的定义”}}}@Ansari所以您建议。。如果我们为获得股票数据而付钱的话,经过一个月的努力和你的大力帮助,它终于奏效了。。但它只获取了USDCAD的数据,我没有看到金、银、铂、钯的数据。。。。我还想显示$yql_query=“select*..”('XAUUSD=X','XAGUSD=X','PLN12.NYM','PAK12.NYM','USDCAD=X')中的所有数据$_SESSION['Ask'] = $quotes->Ask;