ОБНОВИТЬ: Проблема решена сейчас. Проблема была вызвана из-за прокси-серверов моего университета. Из-за них я не смог получить данные от Yahoo API для моего локального хоста. Но когда я загружаю сайт на сервер, все работало нормально.
Я пытаюсь получить цену акций из API финансов Yahoo, но при вводе символа акции появляется следующее предупреждение. Пожалуйста, посмотрите на этот код и укажите на мою ошибку. Спасибо!
Изображение страницы предупреждения Вот
Мой код
$symbol=$_POST['symbol'];
$url="http://download.finance.yahoo.com/d/quotes.csv?s=".trim($symbol)."&f=nsl1op&e=.csv";
$handle=fopen($url, "r");
if (!$handle) {
$error = 'Not a valid URL.';
return false;
}
$result=array();
while ($row = fgetcsv($handle)){
if (isset($row[1])) {
array_push($result, array('company'=>$handle[0],'symbol'=>$handle[1],'last_trade'=>$handle[2], 'open'=>$handle['3'],'close'=>$handle['4']));
}
}
fclose($handle);
$quote_data=$result;
if(!$quote_data){
echo "<div class='alert alert-danger'>invaild symbol</div>";
render("master",array('title'=>'FSE', 'view'=>'quote')); //will show the form again to enter symbol
exit();
}
$title='Quotes for'.htmlspecialchars($quote_data['symbol']);
render("master",array('view'=>'quote', 'title'=>$title, 'data'=>$quote_data)); //will show the page showing prices & symbols of company
вы закодировали специальный символ, который не следует кодировать
http://download.finance.yahoo.com/d/quotes.csv?s=goog&&f=nsl1op&e=.csv
символ & используемые для разделения параметров в URL не должны кодироваться в HTML -> &
дайте мне знать, если вам помогли
Других решений пока нет …