浏览代码

修改bug

chenbo 4 年之前
父节点
当前提交
e2a666533e
共有 2 个文件被更改,包括 82 次插入6 次删除
  1. 81 0
      lib/input_163.class.php
  2. 1 6
      setting.inc.php

+ 81 - 0
lib/input_163.class.php

@@ -0,0 +1,81 @@
+<?php
+/**
+ * @author:王刚涛
+ * 用于获取历史数据各种指数
+ * http://hq.sinajs.cn/list=s_sz000002
+ */
+
+
+class Input_163
+{
+    const GLOBAL_URL_0 = "http://quotes.money.163.com/service/chddata.html?code=";
+    const GLOBAL_URL_1 = "&start=";
+    const GLOBAL_URL_2 = "&end=";
+    const GLOBAL_URL_3 = "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;CHG;PCHG";
+
+    static private 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);
+        $content1 = explode("\n", $content);//以换行符进行分割字符串
+        return $content1;
+    }
+
+    //接口使用的编码,深圳加1,上海加0
+    static private function getCodeForURL($code)
+    {
+        $preNum = '0';
+        $index = Index::getInfoByCode($code);
+        if ($index['exchange'] == STOCK_EXCHANGE_SZ) {
+            $preNum = '1';
+        }
+        return $preNum.$code;
+    }
+
+    //获取指定时间段指数的历史数据
+    static private function getPartIndexDayK($code, $start_date, $end_date)
+    {
+        $urlCode = self::getCodeForURL($code);
+        $url = self::GLOBAL_URL_0.$urlCode.self::GLOBAL_URL_1.$start_date.self::GLOBAL_URL_2.$end_date.self::GLOBAL_URL_3;
+        $contentList = self::curl_get_data($url);
+        if (empty($contentList[1])) {               //只有标题,没有内容
+            return;
+        }
+
+        for ($i = count($contentList) - 1; $i > 0; $i--) {  //倒叙遍历,日期是倒叙的,不遍历标题
+            $content = trim($contentList[$i]);
+            if (empty($content)) {
+                continue;
+            }
+            $item = explode(",", iconv("gbk", "utf-8", $content));
+            $data['code'] = explode("'",$item[1])[1];
+            $data['date'] = ConverseDate($item[0]);
+            $data['name'] = trim($item[2]);
+            $data['timestamp'] = strtotime($item[0]);           //当日零点的时间戳
+            $data['open_price'] = floatval($item[3]);
+            $data['highest_price'] = floatval($item[4]);
+            $data['lowest_price'] = floatval($item[5]);
+            $data['close_price'] = floatval($item[6]);
+            $data['value'] = floatval($item[7]);
+            $data['amount'] = floatval($item[8]);
+            $data['increase_price'] = floatval($item[9]);
+            $data['increase_ratio'] = floatval($item[10]);
+            if ($data['close_price'] == 0) {                    //当收盘价为0的时候,表示此时的基于9-15点,所以不存储
+                continue;
+            }
+            if (!empty($data['name'])) {                       //判断非法股票代码
+                Index_day_k::addOrUpdateByCodeDate($data);
+            }
+        }
+
+        return;
+    }
+
+}
+
+?>

+ 1 - 6
setting.inc.php

@@ -26,12 +26,7 @@ define("MAX_SINA_COUNT", 200);          //从新浪接口一次最大获取股
 //日期格式转换 2021-01-08 转换为数字 20210108
 function ConverseDate($originDate)
 {
-    $arr = explode("-", $originDate);
-    $date = '';
-    foreach ($arr as $item) {
-        $date .= $item;
-    }
-    return (int)($date);
+    return (int)date('Ymd', strtotime($originDate));
 }
 
 ?>