gpt4 book ai didi

php基于curl实现的股票信息查询类实例

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php基于curl实现的股票信息查询类实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了php基于curl实现的股票信息查询类。分享给大家供大家参考,具体如下:

股票信息查询功能我们是需要抓取第三方的数据,然后我们再把这些数据进行分析组成自己想要的,下面我们来看一个php 股票信息查询类. 。

今天一个二逼朋友让我帮忙写个股票查询的类,来集成到微信中,所以花了一点时间写了一个不完整的,哈哈,如果有想玩的人,可以继续提交代码,让它变得完善起来!! 。

GitHub 地址:github.com/widuu/stock,代码如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
class stock{
   /**
    * 股票数据接口
    */
   const STOCK_URL = "http://apis.baidu.com/apistore/stockservice/stock" ;
   /**
    * 通过拼音或者汉字获取股票代码
    */
   const SOCKET_SUGGEST = "http://cjhq.baidu.com/suggest?code5=" ;
   /**
    * 单态实例
    */
   private static $instance ;
   /**
    * API 密钥
    */
   private static $apikey ;
   /**
    * 实例化类和指定API KEY
    * @param apikey string
    * @return instance object
    */
   public static function getInstance( $apikey ){
     if ( self:: $instance == NULL ){
       self:: $instance = new self;
       self:: $apikey = $apikey ;
     }
     return self:: $instance ;
   }
   /**
    * 获取股票名称
    * @param stockid  string
    * @return stockName string
    */
   public static function getName( $stockid ){
     $result = self::getSingleStock( $stockid );
     return $result [ 'name' ];
   }
   /**
    * 获取最后更新时间
    * @param stockid string
    * @return time  string
    */
   public static function getTime( $stockid ){
     $result = self::getSingleStock( $stockid );
     return $result [ 'date' ]. $result [ 'time' ];
   }
   /**
    * 获取K线图地址
    * @param stockid string
    * @param date   string min/day/week/mouth
    * @return imageUrl string
    */
   public static function getKline( $stockid , $date = 'min' ){
     $result = self::getSingleStock( $stockid );
     return $result [ 'klinegraph' ][ $date . 'url' ];
   }
   /**
    * 抓取整只股票的数据
    * @param stockid string
    * @return stock infomation array
    */
   public static function getSingleStock( $stockid ){
     $type = preg_match( '/(\d+){6}/is' , $stockid );
     if ( $type == 0 ){
       $stockid = self::getStockId( $stockid );
     }
     $stock_url = self::STOCK_URL. "?stockid=" . $stockid ;
     $result = self::httpGet( $stock_url , true );
     if ( $result [ 'errNum' ] != 0 ){
       throw new Exception( $result [ 'errMsg' ], 1);
       return ;
     }
     return $result [ 'retData' ];
   }
   /**
    * 输入拼音或者汉字来获取股票代码
    * @param name  string
    * @return stockid string
    */
   private static function getStockId( $name ){
     $result = self::httpGet( self::SOCKET_SUGGEST.urlencode(iconv( 'utf-8' , 'GBK' , $name )),false );
     if (emptyempty( $result )){
       throw new Exception( "stock name not exists" , 2);
       return ;
     }
     $stockid = $result [ 'Result' ][0][ 'code' ];
     $stock  = explode ( '.' , $stockid );
     return  $stock [1]. $stock [0];
   }
   /**
    * GET获取方法
    * @param param string 参数
    * @author widuu
    */
   private static function httpGet( $url , $header =false) {
     $curlHandle = curl_init();
     curl_setopt( $curlHandle , CURLOPT_URL, $url );
     if ( $header ){
       curl_setopt( $curlHandle , CURLOPT_HTTPHEADER , array ( 'apikey:' .self:: $apikey ));
     }
     curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 );
     curl_setopt( $curlHandle , CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt( $curlHandle , CURLOPT_SSL_VERIFYHOST, false);
     curl_setopt( $curlHandle , CURLOPT_TIMEOUT, 10 );
     $content = curl_exec( $curlHandle );
     curl_close( $curlHandle );
     return $header ? json_decode( $content ,true) :json_decode(iconv( 'GBK' , 'utf-8' ,trim( $content )),true);
   }
}
//测试代码
stock::getInstance( "5040bcbfebb0a4cffc7be278723255aa" );
print_r(stock::getSingleStock( 'sh601000' ));
echo stock::getKline( '紫金矿业' );

希望本文所述对大家PHP程序设计有所帮助.

最后此篇关于php基于curl实现的股票信息查询类实例的文章就讲到这里了,如果你想了解更多关于php基于curl实现的股票信息查询类实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com