2017-04-12 3 views
0

ここでは、ライブ株式市場(https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/ajaxGetQuoteJSON.jsp?symbol=tcs)からJSONデータを取得しようとしています。PHPでcurlを使用してjson結果を得ることができません

このURLは、WebブラウザでJSONデータを返します。しかしcurlまたはfile_get_contentsを使用してJSONの詳細を取得できません。

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 
+0

あなたがそのコードを実行すると、出力は何ですか?あなたのPHPのバージョンは何ですか? – marmeladze

+0

私のテストから、「アクセスが拒否されました」というメッセージが表示されます。 JSONではありません。 –

+0

@ - marmeladze私は空のページを取得しています。 PHPのバージョン5.6 –

答えて

4

、このいずれかを試してみてください、それが正常に動作しています。あなたはいくつかの必要なヘッダーを欠いていました。 このURLは、このヘッダーなし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 
) 
+0

。本当に私はエラーを知らない。 PHPのバージョンは問題ですか? –

+0

@RamaLingam私のコードをコピーして貼り付けてからもう一度やり直してください –

+0

私はまだこのコードで 'cURL error(60): ピア証明書を指定のCA証明書で認証できません。 'というメッセージが表示されます。 PHP7.0.17を使用しています。 – RiggsFolly

関連する問題