| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * @author:王刚涛
- * 用于获取当天各种指数
- * http://hq.sinajs.cn/list=s_sz000002
- */
- class InputSinaDayK
- {
- /****
- * @param $url
- * @return array|bool|string
- * 对curl_setopt进行封装,消除代码冗余
- */
- 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);//防止中文乱码
- $content2 = iconv("gbk", "utf-8", $content);//子串
- $content3 = substr($content2, stripos($content2, "=\"") + 2); //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510, ="之后部分
- $content4 = substr($content3, 0, strripos($content3, "\";")); //获取 万 科A,30.94,0.14,0.45,584039,178827"; ";之前部分
- $content5 = explode(",", $content4);//分割
- return $content5;
- }
- /***
- * @param $code
- * @param $date
- * @return mixed
- * 日k线表 day_k_******(每月存一张表,比如boniu_day_k_202011)
- * 抓取当天的数据,结合163的接口
- *
- */
- static public function get_day_k($code, $exchange)
- {
- $stock_code= $exchange.$code;
- $url = "http://hq.sinajs.cn/list=" . $stock_code;
- $content3=self::curl_get_data($url);//封装为函数,
- if (empty($content3))
- {
- throw new Exception('抓取的数据不能为空', 102);
- }
- $data['timestamp'] = time();
- $data['date'] = (int) date("Ymd",time());
- $data['code'] = $code;//股票代码此时去掉sh,sz
- $data['name'] = $content3[0];
- $data['open_price'] = floatval($content3[1]);//开盘价
- $data['close_price'] = floatval($content3[3]);//3点之后的当前价格就是收盘价
- $data['hightest_price'] = floatval($content3[4]);//今日最高价
- $data['lowest_price'] = floatval($content3[5]);//今日最低价
- $data['amount'] = floatval($content3[8]);//成交的股票数,以百为单位
- $data['value'] = floatval($content3[9]);//成交金额以万为单位
- return Day_k::add($data);
- }
- }
- ?>
|