ds34222222
2017-04-12 12:49
浏览 60

无法在php中使用curl获取json结果

Here I am try to get the JSON data from live share market(https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/ajaxGetQuoteJSON.jsp?symbol=tcs).

This url is return the JSON data in web browser. But I cannot get the JSON details using curl OR file_get_contents.

PHP Code:

$url='https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/ajaxGetQuoteJSON.jsp?symbol=tcs';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);    
$result_array =json_decode($result, true);

print_r($result_array);//Empty result

图片转代码服务由CSDN问答提供 功能建议

这里我试图从实时股票市场获取 JSON 数据( https://www.nseindia.com/live_market/dynaContent/live_watch /get_quote/ajaxGetQuoteJSON.jsp?symbol=tcs )。

此网址在Web浏览器中返回JSON数据。 但我无法使用 curl file_get_contents 获取 JSON 详细信息。

PHP代码:

 <代码> $ URL =的 'https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/ajaxGetQuoteJSON.jsp符号= TCS'; \  n 
 $ ch = curl_init(); 
curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,true); 
 ncurl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ ch,CURLOPT_URL,$ url); 
 $ result = curl_exec  ($ CH); 
curl_close($ CH);  
 $ result_array = json_decode($ result,true); 
 
print_r($ result_array); //空结果
   
 
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doulei6330 2017-04-12 12:56
    已采纳

    Try this one, it is working fine. You were missing some required headers. This url doesn't give any result without this header User-Agent

    <?php
    $url='https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/ajaxGetQuoteJSON.jsp?symbol=tcs';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HTTPHEADER,array(
    "Accept-Encoding:UTF-8",
    "Content-type: application/json",
    "User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"));
    $result=curl_exec($ch);
    curl_close($ch);
    
    $result_array =json_decode($result, true);
    
    print_r($result_array);
    

    Output:

    Array
    (
        [futLink] => /live_market/dynaContent/live_watch/get_quote/GetQuoteFO.jsp?underlying=TCS&instrument=FUTSTK&expiry=27APR2017&type=-&strike=-
        [otherSeries] => Array
            (
                [0] => EQ
            )
    
        [lastUpdateTime] => 12-APR-2017 16:00:00
        [tradedDate] => 12APR2017
        [data] => Array
            (
                [0] => Array
                    (
                        [extremeLossMargin] => 5.00
                        [cm_ffm] => 1,27,324.62
                        [bcStartDate] => -
                        [change] => -27.30
                        [buyQuantity3] => -
                        [sellPrice1] => 2,393.25
                        [buyQuantity4] => -
                        [sellPrice2] => -
                        [priceBand] => No Band
                        [buyQuantity1] => -
                        [deliveryQuantity] => 3,31,274
                        [buyQuantity2] => -
                        [sellPrice5] => -
                        [quantityTraded] => 5,25,269
                        [buyQuantity5] => -
                        [sellPrice3] => -
                        [sellPrice4] => -
                        [open] => 2,422.50
                        [low52] => 2,051.90
                        [securityVar] => 3.85
                        [marketType] => N
                        [pricebandupper] => 2,661.20
                        [totalTradedValue] => 12,624.32
                        [faceValue] => 1.00
                        [ndStartDate] => -
                        [previousClose] => 2,419.30
                        [symbol] => TCS
                        [varMargin] => 7.50
                        [lastPrice] => 2,392.00
                        [pChange] => -1.13
                        [adhocMargin] => -
                        [companyName] => Tata Consultancy Services Limited
                        [averagePrice] => 2,403.40
                        [secDate] => 12APR2017
                        [series] => EQ
                        [isinCode] => INE467B01029
                        [indexVar] => -
                        [pricebandlower] => 2,177.40
                        [totalBuyQuantity] => -
                        [high52] => 2,744.80
                        [purpose] => INTERIM DIVIDEND RS 6.50 PER SHARE
                        [cm_adj_low_dt] => 15-NOV-16
                        [closePrice] => 2,393.25
                        [isExDateFlag] => 
                        [recordDate] => 24-JAN-17
                        [cm_adj_high_dt] => 12-AUG-16
                        [totalSellQuantity] => 565
                        [dayHigh] => 2,428.00
                        [exDate] => 23-JAN-17
                        [sellQuantity5] => -
                        [bcEndDate] => -
                        [css_status_desc] => Listed
                        [ndEndDate] => -
                        [sellQuantity2] => -
                        [sellQuantity1] => 565
                        [buyPrice1] => -
                        [sellQuantity4] => -
                        [buyPrice2] => -
                        [sellQuantity3] => -
                        [applicableMargin] => 12.50
                        [buyPrice4] => -
                        [buyPrice3] => -
                        [buyPrice5] => -
                        [dayLow] => 2,383.00
                        [deliveryToTradedQuantity] => 63.07
                        [totalTradedVolume] => 5,25,269
                    )
    
            )
    
        [optLink] => /marketinfo/sym_map/symbolMapping.jsp?symbol=TCS&instrument=-&date=-&segmentLink=17&symbolCount=2
    )
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题