日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2023/12/10 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php实时股票,php基于curl实现的股票信息查询类实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了php基于curl實現的股票信息查詢類。分享給大家供大家參考,具體如下:

股票信息查詢功能我們是需要抓取第三方的數據,然后我們再把這些數據進行分析組成自己想要的,下面我們來看一個php 股票信息查詢類.

今天一個二逼朋友讓我幫忙寫個股票查詢的類,來集成到微信中,所以花了一點時間寫了一個不完整的,哈哈,如果有想玩的人,可以繼續提交代碼,讓它變得完善起來!!

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

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实时股票,php基于curl实现的股票信息查询类实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。