|
|
@@ -1,21 +1,59 @@
|
|
|
<?php
|
|
|
/**
|
|
|
- * @author:yxh
|
|
|
- * 用于获取 并存入数据库,通过$url,可以设置需要获取的时间段
|
|
|
+ * @author:王刚涛
|
|
|
+ * 用于获取 当天的股票数据并存入数据库,通过$url,可以设置需要获取的时间段
|
|
|
*/
|
|
|
-error_reporting( E_ALL&~E_NOTICE );
|
|
|
-
|
|
|
-
|
|
|
+error_reporting(E_ALL & ~E_NOTICE);
|
|
|
+
|
|
|
+
|
|
|
class sina
|
|
|
{
|
|
|
+ /****
|
|
|
+ * @param $url
|
|
|
+ * @return array|bool|string
|
|
|
+ * 对curl_setopt进行封装,消除代码冗余
|
|
|
+ */
|
|
|
+ static public function curl_get_data($url){
|
|
|
+ $curlHandle = curl_init();
|
|
|
+ curl_setopt($curlHandle, CURLOPT_URL, $url);
|
|
|
+ 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);//防止中文乱码
|
|
|
+ $content2 = iconv("gbk", "utf-8", $content);//子串
|
|
|
+ $content3 = substr($content2, strripos($content2, "=") + 1);
|
|
|
+ $content3 = explode(",", $content3);//分割
|
|
|
+ return $content3;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//市场上所有的股票 boniu_stock
|
|
|
- public function get_boniu_stock($code){
|
|
|
+ static public function get_boniu_stock($code)
|
|
|
+ {
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//上证指数表(boniu_index_sh)
|
|
|
+ static public function get_boniu_index_sh($code="000001")
|
|
|
+ {
|
|
|
+ $url = "http://hq.sinajs.cn/list=s_sh".$code;
|
|
|
+ $content3=sina::curl_get_data($url);
|
|
|
+ $data['increase_value'] = floatval($content3[3]);//涨跌率
|
|
|
+ $data2=self::get_info_code($code);//调用另一个函数获取其他数据如开盘价等等
|
|
|
+ $data['increase_price'] = 0; // 涨跌价
|
|
|
+ $data['date'] = strtotime(date('Y-m-d',time()));//当天的0点时间戳
|
|
|
+ $data['open_price'] = floatval($data2[1]);//开盘价
|
|
|
+ $data['close_price'] = floatval($data2[3]);//3点之后的当前价格就是收盘价
|
|
|
+ $data['hightest_price'] = floatval($data2[4]);//今日最高价
|
|
|
+ $data['lowest_price'] = floatval($data2[5]);//今日最低价
|
|
|
+ $data['amount'] = (int)($data2[8]);//成交的股票数,以百为单位
|
|
|
+ $data['value'] = (int)($data2[9]);//成交金额以万为单位
|
|
|
+ return Index_sh::add($data);
|
|
|
+ }
|
|
|
//深成指数表(boniu_index_scz)
|
|
|
//
|
|
|
//上证50指数表(boniu_index_sh50)
|
|
|
@@ -23,51 +61,49 @@ class sina
|
|
|
//创业板指数表(boniu_index_gem)
|
|
|
//科创50指数( boniu_index_kc50)
|
|
|
//日k线表 day_k_******(每月存一张表,比如boniu_day_k_202011)
|
|
|
-
|
|
|
- static public function get_day_k_base($code,$date){
|
|
|
+ /***
|
|
|
+ * @param $code
|
|
|
+ * @param $date
|
|
|
+ * 根据股票代码获取股票的实时信息
|
|
|
+ */
|
|
|
+ static public function get_info_code($code){
|
|
|
$stock_code = $code;
|
|
|
$f = substr($stock_code, 0, 1);
|
|
|
- if ($f == "6") {
|
|
|
- $stock_code = "sh".$code;
|
|
|
+ if ($f == "6" || $f == "0" ) {
|
|
|
+ $stock_code = "sh" . $code;
|
|
|
+ } else {
|
|
|
+ $stock_code = "sz" . $code;
|
|
|
}
|
|
|
- else {
|
|
|
- $stock_code = "1".$code;
|
|
|
- }
|
|
|
- $url = "http://hq.sinajs.cn/list=".$stock_code;
|
|
|
+ $url = "http://hq.sinajs.cn/list=" . $stock_code;
|
|
|
+ $content3=sina::curl_get_data($url);//封装为函数,执行url获取结果并解析
|
|
|
+ return $content3;
|
|
|
+ }
|
|
|
|
|
|
- $curlHandle = curl_init();
|
|
|
- curl_setopt( $curlHandle , CURLOPT_URL, $url );
|
|
|
- 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 );
|
|
|
- //防止中文乱码
|
|
|
- $content2 = iconv("gbk","utf-8",$content);
|
|
|
- //子串
|
|
|
- $content3=substr($content2,strripos($content2,"=")+1);
|
|
|
-// var_dump($content3);
|
|
|
- $content3 = explode(",",$content3);//分割
|
|
|
-// var_dump($content3);
|
|
|
+
|
|
|
+ static public function get_day_k_base($code, $date)
|
|
|
+ {
|
|
|
+ $stock_code = $code;
|
|
|
+ $f = substr($stock_code, 0, 1);
|
|
|
+ if ($f == "6" || $f == "0" ) {
|
|
|
+ $stock_code = "sh" . $code;
|
|
|
+ } else {
|
|
|
+ $stock_code = "sz" . $code;
|
|
|
+ }
|
|
|
+ $url = "http://hq.sinajs.cn/list=" . $stock_code;
|
|
|
+ $content3=sina::curl_get_data($url);//封装为函数,
|
|
|
$data['date'] = $content3[30];
|
|
|
- $data['code'] =$code;
|
|
|
+ $data['code'] = $stock_code;
|
|
|
$data['open_price'] = $content3[1];//开盘价
|
|
|
+ $data['close_price'] = $content3[3];//3点之后的当前价格就是收盘价
|
|
|
$data['hightest_price'] = $content3[4];//今日最高价
|
|
|
$data['lowest_price'] = floatval($content3[5]);//今日最低价
|
|
|
- $data['amount'] = $content3[8];//成交的股票数,以百为单位
|
|
|
+ $data['amount'] = $content3[8];//成交的股票数,以百为单位
|
|
|
$data['value'] = $content3[9];//成交金额以万为单位
|
|
|
-
|
|
|
- return Day_k_base::add($data,$date);
|
|
|
+ return Day_k_base::add($data, $date);
|
|
|
}
|
|
|
|
|
|
//除权除息表(boniu_xrxd_log)
|
|
|
//st记录表(boniu_st_log)
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- ?>
|
|
|
+
|
|
|
+?>
|