<?php
function getNSEStockQuote($symbol) {
$cookieFile = __DIR__ . "/nse_cookie.txt";
// Step 1: Load NSE homepage to set cookies
curl_setopt($ch, CURLOPT_URL
, "https://w...content-available-to-author-only...a.com/"); curl_setopt($ch, CURLOPT_USERAGENT
, "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
// Step 2: Call the actual quote API
$apiUrl = "https://w...content-available-to-author-only...a.com/api/quote-equity?symbol=" . urlencode($symbol);
$headers = [
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Accept: application/json",
"Referer: https://w...content-available-to-author-only...a.com/get-quotes/equity?symbol=" . urlencode($symbol), "Accept-Language: en-US,en;q=0.9",
"Connection: keep-alive"
];
if (!$data || isset($data['error'])) { return "Failed to fetch stock data.";
}
return [
'symbol' => $data['info']['symbol'] ?? '',
'companyName' => $data['info']['companyName'] ?? '',
'lastPrice' => $data['priceInfo']['lastPrice'] ?? '',
'dayHigh' => $data['priceInfo']['intraDayHighLow']['max'] ?? '',
'dayLow' => $data['priceInfo']['intraDayHighLow']['min'] ?? '',
'volume' => $data['marketDeptOrderBook']['tradeInfo']['totalTradedVolume'] ?? '',
];
}
// Example
$symbol = "TATAMOTORS"; // Try RELIANCE, SBIN, INFY etc.
$result = getNSEStockQuote($symbol);
PD9waHAKCmZ1bmN0aW9uIGdldE5TRVN0b2NrUXVvdGUoJHN5bWJvbCkgewogICAgJGNvb2tpZUZpbGUgPSBfX0RJUl9fIC4gIi9uc2VfY29va2llLnR4dCI7CgogICAgLy8gU3RlcCAxOiBMb2FkIE5TRSBob21lcGFnZSB0byBzZXQgY29va2llcwogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAiaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLmNvbS8iKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkiKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjb29raWVGaWxlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY29va2llRmlsZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCB0cnVlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICBjdXJsX2V4ZWMoJGNoKTsKICAgIGN1cmxfY2xvc2UoJGNoKTsKCiAgICAvLyBTdGVwIDI6IENhbGwgdGhlIGFjdHVhbCBxdW90ZSBBUEkKICAgICRhcGlVcmwgPSAiaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLmNvbS9hcGkvcXVvdGUtZXF1aXR5P3N5bWJvbD0iIC4gdXJsZW5jb2RlKCRzeW1ib2wpOwoKICAgICRoZWFkZXJzID0gWwogICAgICAgICJVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSIsCiAgICAgICAgIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgIlJlZmVyZXI6IGh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uYS5jb20vZ2V0LXF1b3Rlcy9lcXVpdHk/c3ltYm9sPSIgLiB1cmxlbmNvZGUoJHN5bWJvbCksCiAgICAgICAgIkFjY2VwdC1MYW5ndWFnZTogZW4tVVMsZW47cT0wLjkiLAogICAgICAgICJDb25uZWN0aW9uOiBrZWVwLWFsaXZlIgogICAgXTsKCiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICRhcGlVcmwpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvb2tpZUZpbGUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0VOQ09ESU5HLCAiIik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CgogICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlKCRjaCk7CgogICAgJGRhdGEgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UsIHRydWUpOwoKICAgIGlmICghJGRhdGEgfHwgaXNzZXQoJGRhdGFbJ2Vycm9yJ10pKSB7CiAgICAgICAgcmV0dXJuICJGYWlsZWQgdG8gZmV0Y2ggc3RvY2sgZGF0YS4iOwogICAgfQoKICAgIHJldHVybiBbCiAgICAgICAgJ3N5bWJvbCcgPT4gJGRhdGFbJ2luZm8nXVsnc3ltYm9sJ10gPz8gJycsCiAgICAgICAgJ2NvbXBhbnlOYW1lJyA9PiAkZGF0YVsnaW5mbyddWydjb21wYW55TmFtZSddID8/ICcnLAogICAgICAgICdsYXN0UHJpY2UnID0+ICRkYXRhWydwcmljZUluZm8nXVsnbGFzdFByaWNlJ10gPz8gJycsCiAgICAgICAgJ2RheUhpZ2gnID0+ICRkYXRhWydwcmljZUluZm8nXVsnaW50cmFEYXlIaWdoTG93J11bJ21heCddID8/ICcnLAogICAgICAgICdkYXlMb3cnID0+ICRkYXRhWydwcmljZUluZm8nXVsnaW50cmFEYXlIaWdoTG93J11bJ21pbiddID8/ICcnLAogICAgICAgICd2b2x1bWUnID0+ICRkYXRhWydtYXJrZXREZXB0T3JkZXJCb29rJ11bJ3RyYWRlSW5mbyddWyd0b3RhbFRyYWRlZFZvbHVtZSddID8/ICcnLAogICAgXTsKfQoKLy8gRXhhbXBsZQokc3ltYm9sID0gIlRBVEFNT1RPUlMiOyAvLyBUcnkgUkVMSUFOQ0UsIFNCSU4sIElORlkgZXRjLgokcmVzdWx0ID0gZ2V0TlNFU3RvY2tRdW90ZSgkc3ltYm9sKTsKCnByaW50X3IoJHJlc3VsdCk7Cg==