fopen()不起作用并且警告目标机器主动拒绝它出现?

时间:2014-10-04 20:32:36

标签: php fopen

更新:问题现在解决了。问题是由于我大学的代理服务器引起的。由于他们,我无法从yahoo api获取数据到我的localhost。但是当我在服务器上传网站时,一切正常。


我正试图从雅虎财务API获得股票价格,但当我输入股票代码时,会出现以下警告。请看一下这段代码并指出我的错误。谢谢!

警告页面的图像为Here

我的代码是

    $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

1 个答案:

答案 0 :(得分:0)


你编写了一个特殊的字符,你不应该编码它

http://download.finance.yahoo.com/d/quotes.csv?s=goog&amp;&f=nsl1op&e=.csv

char&amp;用于分隔URL中的参数不应该用HTML编码 - &gt; &amp; amp;

让我知道是否有人帮助