如何使用雅虎财经获取实时股票价格 [英] How to get RealTime stock price using yahoo finance

查看:236
本文介绍了如何使用雅虎财经获取实时股票价格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有几个要求其在下面列出。

  1. 在获取实时的股票价格不刷新页面或AJAX。 (即雅虎财经,他们得到最新的股票价格没有页面刷新和Ajax调用)
  2. 在获取股价从不亚于股市像疯牛病,国家安全委员会等。

现在用下面的codeI时能够获得股票的价格,但无论是我必须刷新页面或拨打了Ajax,并在这两个情况下,需要20到30秒,但在很多理财网站,他们可以通过每次更新价格第二个不使用AJAX。

 < PHP
/ **
 *类来从雅虎财经股票数据
 *
 * /

    类YahooStock {

        / **
         *股票code数组
         * /
        私人$股=阵列();

        / **
         *参数string要取
         * /
        私人$格式;

        / **
         *填充股票阵列股票code
         *
         * @参数字符串$库存库存$ C $公司Ç
         * @返回无效
         * /
        公共职能addStock($股票)
        {
            $这个 - >股票[] = $的股票;
        }

        / **
         *填充参数/格式要取
         *
         * @参数字符串$参数参数/格式要取
         * @返回无效
         * /
        公共职能addFormat($格式)
        {
            $这个 - >格式= $格式;
        }

        / **
         *获取股票数据
         *
         * @返回数组
         * /
        公共职能getQuotes()
        {
            $结果=阵列();
            $格式= $这个 - >格式;

            的foreach($这个 - >的股票评级为$股票)
            {
                / **
                 *获取来自雅虎的数据
                 * S =股票code
                 * F =格式
                 * E =文件类型
                 * /
                $ = S的file_get_contents(http://finance.yahoo.com/d/quotes.csv?s=$stock&f=$format&e=.csv);

                / **
                 *转换逗号分隔的数据转换成数组
                 * /
                $数据=爆炸(',',$ S);

                / **
                 *与股票code关键填入结果数组
                 * /
                $结果[$股票] = $的数据;
            }
            返回$结果;
        }
    }
    $ objYahooStock =新YahooStock;

    / **
        添加格式/参数要取

        S =符号
        N =名称
        L1 =最近交易(价格只)
        D1 =最后交易日
        T1 =最后交易时间
        C =变化和百分比变化
        V =卷
     * /
    $ objYahooStock-> addFormat(snl1d1t1cv);

    / **
        添加公司股票code要取

        MSFT =微软
        AMZN =亚马逊
        YHOO =雅虎
        goog =谷歌
        AAPL =苹果
     * /
    $ objYahooStock-> addStock(MSFT);
    $ objYahooStock-> addStock(AMZN);
    $ objYahooStock-> addStock(YHOO);
    $ objYahooStock-> addStock(goog);
    $ objYahooStock-> addStock(VGZ);
    $ objYahooStock-> addStock(FB);
    / **
     *打印出的数据
     * /
    ?>
    <表格的宽度=100%>
    &其中; TR>
        百分位>行< /第i个
        <第i code< /第i个
        百分位>名称< /第i个
        <第i个最近交易价格与LT; /第i个
        <第i个最近交易时间< /第i个
        <第i个变化和百分比变化< /第i个
        百分位>音量和LT; /第i个
    < / TR>
    < PHP
    的foreach($ objYahooStock-> getQuotes()为$code => $股票)
    {
        ?>
        &其中; TR>
            < TD>< PHP //的print_r($股票); ?>< / TD>
            < TD>< PHP的echo $股票[0]; ?>< / TD>
            < TD>< PHP的echo $股票[1]; ?>< / TD>
            < TD>< PHP的echo $股票[2]; ?>< / TD>
            < TD>< PHP的echo $股票[3]; ?>< / TD>
            < TD>< PHP的echo $股票[4]; ?>< / TD>
            < TD>< PHP的echo $股票[5]; ?>< / TD>
            < TD>< PHP的echo $股票[6]; ?>< / TD>
        < / TR>

        < PHP
    }
?>
    < /表>
 

解决方案

检查这个网站,这可能是你想要的(用它的实时Web应用程序)

HTTP://ex$p$pss-io.org/

http://socket.io/

教程

http://blog.nodeknockout.com/post/34243127010/敲输出插座-IO

I have several requirement which are listed below.

  1. Get Real Time stock price without page refresh or ajax. (ie. yahoo finance, they get latest stock price without page refresh and ajax call)
  2. Get stock price from as much as stock market like BSE, NSC etc..

Right now using following code i am able to get stock price but either i have to refresh the page or call to ajax and in both case it take 20 to 30 seconds but in many finance site they can update price by each second without using ajax.

<?php
/**
 * Class to fetch stock data from Yahoo! Finance
 *
 */

    class YahooStock {

        /**
         * Array of stock code
         */
        private $stocks = array();

        /**
         * Parameters string to be fetched  
         */
        private $format;

        /**
         * Populate stock array with stock code
         *
         * @param string $stock Stock code of company   
         * @return void
         */
        public function addStock($stock)
        {
            $this->stocks[] = $stock;
        }

        /**
         * Populate parameters/format to be fetched
         *
         * @param string $param Parameters/Format to be fetched
         * @return void
         */
        public function addFormat($format)
        {
            $this->format = $format;
        }

        /**
         * Get Stock Data
         *
         * @return array
         */
        public function getQuotes()
        {       
            $result = array();     
            $format = $this->format;

            foreach ($this->stocks as $stock)
            {           
                /**
                 * fetch data from Yahoo!
                 * s = stock code
                 * f = format
                 * e = filetype
                 */
                $s = file_get_contents("http://finance.yahoo.com/d/quotes.csv?s=$stock&f=$format&e=.csv");

                /**
                 * convert the comma separated data into array
                 */
                $data = explode( ',', $s);

                /**
                 * populate result array with stock code as key
                 */
                $result[$stock] = $data;
            }
            return $result;
        }
    }
    $objYahooStock = new YahooStock;

    /**
        Add format/parameters to be fetched

        s = Symbol
        n = Name
        l1 = Last Trade (Price Only)
        d1 = Last Trade Date
        t1 = Last Trade Time
        c = Change and Percent Change
        v = Volume
     */
    $objYahooStock->addFormat("snl1d1t1cv");

    /**
        Add company stock code to be fetched

        msft = Microsoft
        amzn = Amazon
        yhoo = Yahoo
        goog = Google
        aapl = Apple   
     */
    $objYahooStock->addStock("msft");
    $objYahooStock->addStock("amzn");
    $objYahooStock->addStock("yhoo");
    $objYahooStock->addStock("goog");
    $objYahooStock->addStock("vgz");
    $objYahooStock->addStock("FB");
    /**
     * Printing out the data
     */
    ?>
    <table width="100%">
    <tr>
        <th>Row</th>
        <th>Code</th>
        <th>Name</th>
        <th>Last Trade Price</th>
        <th>Last Trade Time</th>
        <th>Change and Percent Change</th>
        <th>Volume</th>
    </tr>
    <?php
    foreach( $objYahooStock->getQuotes() as $code => $stock)
    {
        ?>
        <tr>
            <td><?php //print_r($stock); ?></td>
            <td><?php echo $stock[0]; ?></td>
            <td><?php echo $stock[1]; ?></td>
            <td><?php echo $stock[2]; ?></td>
            <td><?php echo $stock[3]; ?></td>
            <td><?php echo $stock[4]; ?></td>
            <td><?php echo $stock[5]; ?></td>
            <td><?php echo $stock[6]; ?></td>
        </tr>

        <?php
    }
?>
    </table>

解决方案

check this web this may be what you want(Use it for realtime web application)

http://express-io.org/

http://socket.io/

Tutorials

http://blog.nodeknockout.com/post/34243127010/knocking-out-socket-io

这篇关于如何使用雅虎财经获取实时股票价格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆