PHP Yahoo данные не возвращаются

Я пытаюсь сделать следующее: localhost / quote.php? Symbol = IBM, но $ data возвращается пустым в строке 42, где написано, что отсутствуют данные.

<?php



// require ?symbol=...

if (empty($_GET["symbol"]))

{

trigger_error("Missing symbol", E_USER_ERROR);

}




echo $_GET["symbol"];

$_GET["symbol"] = "IBM";


// headers for proxy servers

$headers = [

"Accept" => "*/*",

"Connection" => "Keep-Alive",

"User-Agent" => sprintf("curl/%s", curl_version()["version"])

];



// open connection to Yahoo

$context = stream_context_create([

"http" => [

"header" => implode(array_map(function($value, $key) {return sprintf("%s:  %s\r\n", $key, $value); }, $headers,

array_keys($headers))),

"method" => "GET"
]

]);

$handle =    fopen("http://download.finance.yahoo.com/d/quotes.csv?f=snl1&s=  {$_GET["symbol"]}", "r", false, $context);

if ($handle === false)

{

trigger_error("Could not connect to Yahoo!", E_USER_ERROR);

}





// download first line of CSV file

$data = fgetcsv($handle);
print_r($data);

if ($data === false || count($data) == 1)

{

trigger_error("Missing data", E_USER_ERROR);

}



// close connection to Yahoo

fclose($handle);



// ensure symbol was found

if ($data[2] === "0.00")

{

trigger_error("Missing price", E_USER_ERROR);

}



// prepare stock as an associative array

$stock = [

"symbol" => $data[0],

"name" => $data[1],

"price" => floatval($data[2])] ;

// output stock as JSON

header

("Content-Type: application/json");

print(json_encode($stock));



?>

0

Решение

Ваш URL содержит пробелы:

fopen("http://download.finance.yahoo.com/d/quotes.csv?f=snl1&s=  {$_GET["symbol"]}",
^^

Вам нужно trim() Это.

добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

<?php
error_reporting(E_ALL); // you could also use '-1' to get all errors.
ini_set('display_errors', 1);

// rest of your code

Примечание: Отображать ошибки следует только в постановке, а не в производстве.

  • var_dump()это еще один инструмент, который вы можете использовать во время разработки
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]