0

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
4
  • what is output when you execute that code? what is your php version? Commented Apr 12, 2017 at 12:52
  • From my test, it looks like you mabe get getting an "Access Denied". Not JSON. Commented Apr 12, 2017 at 12:54
  • @ – marmeladze I am getting empty page. PHP version 5.6 Commented Apr 12, 2017 at 12:56
  • If you add some error checking like if($errno = curl_errno($ch)) { $error_message = curl_strerror($errno); echo "cURL error ({$errno}):\n {$error_message}"; } then you get the error Peer certificate cannot be authenticated with given CA certificates Or at least I do Commented Apr 12, 2017 at 12:56

1 Answer 1

4

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
)
Sign up to request clarification or add additional context in comments.

7 Comments

I getting the empty page. Really I don't know the error. PHP version is problem?
I still get cURL error (60): Peer certificate cannot be authenticated with given CA certificates with this code, so what have you got that I dont? Using PHP7.0.17
I am getting error# Warning: curl_errno(): 2 is not a valid cURL handle resource in C:\xampp\htdocs\test.php on line 26
Hmm I am using Windows as well. Is this a certificate issue.
Try to set validator to false: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.