wanggangtao hace 5 años
padre
commit
d5889ca7dc

+ 13 - 2
lib/inputSinaDayK.class.php

@@ -48,7 +48,6 @@ class InputSinaDayK
         {
             throw new Exception('抓取的数据不能为空', 102);
         }
-
         $data['timestamp'] = time();
         $data['date'] = (int) date("Ymd",time());
         $data['code'] = $code;//股票代码此时去掉sh,sz
@@ -60,7 +59,19 @@ class InputSinaDayK
         $data['amount'] = floatval($content3[8]);//成交的股票数,以百为单位
         $data['value'] = floatval($content3[9]);//成交金额以万为单位
 
-
+//调用腾讯接口获取其他数据
+        $dataContent=InputTencentDay_k::get_stock_data($code, $exchange);
+        if (!empty($dataContent)) {
+            $data["increase_price"]  =   empty($content1["increase_price"])? 0 : $content1["increase_price"]; //  涨跌价
+            $data["increase_ratio"]  =   empty($content1["increase_ratio"])? 0 : $content1["increase_ratio"];//   涨跌幅
+            $data["turnover"]        =   empty($content1["turnover"])? 0 : $content1["turnover"];//    换手率
+            $data["pe_ttm"]          =   empty($dataContent["pe_ttm"])? 0 : $dataContent["pe_ttm"];//pe_ttm市盈率
+            $data["tradable_value"]  =   empty($dataContent["tradable_value"])? 0 : (int)($dataContent["tradable_value"]*100000000);//流通市值
+            $data["total_value"]     =   empty($dataContent["total_value"])? 0 : (int)($dataContent["total_value"]*100000000);//总市值
+            $data["pb"]              =   empty($dataContent["pb"])? 0 : $dataContent["pb"];//市净率
+            $data["pe_dynamic"]      =   empty($dataContent["pe_dynamic"])? 0 : $dataContent["pe_dynamic"]; //动态市盈率
+            $data["pe_static"]       =   empty($dataContent["pe_static"])? 0 : $dataContent["pe_static"];//静态市盈率
+        }
         return Day_k::add($data);
     }
 

+ 60 - 0
lib/inputTencentDay_k.class.php

@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: 王刚涛
+ * Date: 2020/11/29
+ * Time: 18:51
+ */
+class InputTencentDay_k
+{
+
+    /****
+     * @param $url
+     * @return array|bool|string
+     * 对curl_setopt进行封装,消除代码冗余
+     */
+    static private function curl_get_data($url)
+    {
+        $ch = curl_init();
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        $content = curl_exec($ch);
+        curl_close($ch);
+        $content1 = substr($content, stripos($content, "=\"") + 2);         //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510,  ="之后部分
+        $content2 = explode("~", iconv("gbk", "utf-8", $content1));//以换行符进行分割字符串
+        return $content2;
+    }
+
+
+    /***
+     * @param $stock_code
+     * @return mixed
+     * 获取股票的基本静态数据,
+     */
+    static public function get_stock_data($code,$exchange)
+    {
+        $data=array();
+        $stock_code=$exchange.$code;
+        $url = "http://qt.gtimg.cn/q=" . $stock_code;
+//        $url = "http://qt.gtimg.cn/q=" . "sh600270";
+        //市盈率,流通市值,总市值,市净率
+        $content1 = self::curl_get_data($url);
+//        var_dump($content1);
+//      解析返回的历史数据
+        if (!empty($content1)) {
+            $data["increase_price"]          =   empty($content1[31])? 0 : $content1[31]; //  涨跌价
+            $data["increase_ratio"]          =   empty($content1[32])? 0 : $content1[32];//   涨跌幅
+            $data["turnover"]                =   empty($content1[38])? 0 : $content1[38];//    换手率
+            $data["pe_ttm"]                  =   empty($content1[39])? 0 : $content1[39];//pe_ttm市盈率
+            $data["tradable_value"]          =   empty($content1[44])? 0 : (int)$content1[44]*100000000;//流通市值
+            $data["total_value"]             =   empty($content1[45])? 0 : (int)$content1[45]*100000000;//总市值
+            $data["pb"]                      =   empty($content1[46])? 0 : $content1[46];//市净率
+            $data["pe_dynamic"]              =   empty($content1[52])? 0 : $content1[52]; //动态市盈率
+            $data["pe_static"]               =   empty($content1[53])? 0 : $content1[53];//静态市盈率
+        }
+        return $data;
+    }
+}

+ 10 - 4
lib/table/table_day_k.class.php

@@ -69,10 +69,16 @@ class Table_day_k extends Table {
              'day_k_lowest_price'    => array('number', $attr['lowest_price']),
              'day_k_amount'    => array('number', $attr['amount']),
              'day_k_value'    => array('number', $attr['value']),
-//            'day_k_close_price_qfq'    => array('number', $attr['close_price_qfq']),
-//            'day_k_increase_price'    => array('number', $attr['increase_price']),
-//            'day_k_increase_value'    => array('number', $attr['increase_value']),
-//            'day_k_turnover'    => array('number', $attr['turnover']),
+
+            'day_k_increase_price'    => array('number', $attr['increase_price']),//  涨跌价
+            'day_k_increase_ratio'    => array('number', $attr['increase_ratio']),//   涨跌幅
+            'day_k_turnover'    => array('number', $attr['turnover']),//    换手率
+            'day_k_pe_ttm'    => array('number', $attr['pe_ttm']),
+            'day_k_tradable_value'    => array('number', $attr['tradable_value']),
+            'day_k_total_value'    => array('number', $attr['total_value']),
+            'day_k_pb'    => array('number', $attr['pb']),
+            'day_k_pe_dynamic'    => array('number', $attr['pe_dynamic']),
+            'day_k_pe_static'    => array('number', $attr['pe_static']),
         );
         return $this->pdo->sqlinsert($this->table_fullname, $param);
     }

+ 1 - 0
task/task_get_history_index.php

@@ -4,6 +4,7 @@
  * User: 王刚涛
  * Date: 2020/12/1
  * Time: 19:35
+ * 获取日K表当天的数据
  */
 require('../init.php');
 $stock_code="399300";