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

时间:2017-04-12 12:49:16

标签: php json curl

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

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

PHP代码:

$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

1 个答案:

答案 0 :(得分:4)

尝试这个,它工作正常。你错过了一些必需的标题。 如果没有此标头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);

<强>输出:

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
)