Php 没有返回任何数据

Php 没有返回任何数据,php,yahoo-finance,Php,Yahoo Finance,我正在通过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"; //

我正在通过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));



 ?>

您的URL包含空格:

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

添加到文件的顶部,这将有助于查找错误

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

// rest of your code

第42行是什么,这是什么
&s={$\u GET[“symbol”]}”
-似乎缺少一些GET参数。使用错误报告,您可能需要
trim()
那是因为那里的空间。修剪起了作用,谢谢你,不用谢。回答得好,只是破坏了那个完美的代表;P@Darren哈哈哈!!是的,我看到了。今天早上看到完美的55000真是太酷了,得到了两个五分钱;-)不用担心,伙计,干杯,谢谢。自从我上次看到你的rep!真是令人印象深刻,先生!恭喜;-)@Darren一定有一段时间了Darren。天哪,我现在不经常提交那么多答案,只提交确定的赌注和明确的问题。我得到了一些残差,这很好。我忍不住;-)稍后见,先生!