|
|
@@ -1,111 +0,0 @@
|
|
|
-<?php
|
|
|
-/**
|
|
|
- * @author:王刚涛
|
|
|
- * 用于获取当天各种指数
|
|
|
- * http://hq.sinajs.cn/list=s_sz000002
|
|
|
- */
|
|
|
-
|
|
|
-
|
|
|
-class Input_sina_index
|
|
|
-{
|
|
|
-
|
|
|
-
|
|
|
- /***
|
|
|
- * @param $code
|
|
|
- * @param $exchange
|
|
|
- * @return mixed
|
|
|
- * 获取股票信息
|
|
|
- */
|
|
|
- static public function get_day_k_index($code,$exchange)
|
|
|
- {
|
|
|
- $stockCode="s_".$exchange.$code;
|
|
|
- $url = "http://hq.sinajs.cn/list=".$stockCode;
|
|
|
- $content3=self::curl_get_data($url);
|
|
|
- $data['increase_ratio'] = floatval($content3[3]);//涨跌率
|
|
|
-
|
|
|
- $data2=self::get_info_code($code);//调用另一个函数获取其他数据如开盘价等等
|
|
|
- $data['increase_price'] = floatval($data2[3]-$data2[2]);//涨跌
|
|
|
- // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数)
|
|
|
- $data['timestamp'] = strtotime(date('Y-m-d',time()));//当天的0点时间戳
|
|
|
- $data['date'] = date('Ymd',time());
|
|
|
- $data['code'] = $code;//开盘价
|
|
|
- $data['name'] = $data2[0];//股票名称
|
|
|
- $data['open_price'] = floatval($data2[1]);//开盘价
|
|
|
- $data['close_price'] = floatval($data2[3]);//3点之后的当前价格就是收盘价
|
|
|
- $data['highest_price'] = floatval($data2[4]);//今日最高价
|
|
|
- $data['lowest_price'] = floatval($data2[5]);//今日最低价
|
|
|
- $data['amount'] = (int)($data2[8]);//成交的股票数,以百为单位
|
|
|
- $data['value'] = (int)($data2[9]);//成交金额以万为单位
|
|
|
- return Index_day_k::add($data);
|
|
|
- }
|
|
|
-
|
|
|
- /****
|
|
|
- * @param $code
|
|
|
- * @return string
|
|
|
- * 判断股票的类型,属于创业板,科创板,主板,$code
|
|
|
- */
|
|
|
- static public function get_boniu_block($code)
|
|
|
- {
|
|
|
- if (strncmp($code, "30", 2) == 0) {
|
|
|
- //创业板
|
|
|
- $stockCode= "sz". $code;
|
|
|
- } else if (strncmp($code, "68", 2) == 0) {
|
|
|
- //科创板
|
|
|
- $stockCode= "sh" .$code;
|
|
|
- } else if (strncmp($code, "60", 2) == 0) {
|
|
|
- //主板
|
|
|
- $stockCode = "sh".$code;
|
|
|
- } else if (strncmp($code, "00", 2) == 0) {
|
|
|
- //中小板
|
|
|
- $stockCode= "sh".$code;
|
|
|
- }else if (strncmp($code, "39", 2) == 0) {
|
|
|
- //中小板
|
|
|
- $stockCode= "sz".$code;
|
|
|
- }
|
|
|
- return $stockCode;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /***
|
|
|
- * @param $code
|
|
|
- * @param $date
|
|
|
- * 根据股票代码获取股票的实时信息
|
|
|
- */
|
|
|
- static public function get_info_code($code){
|
|
|
-
|
|
|
- $stock_code= self::get_boniu_block($code);
|
|
|
- $url = "http://hq.sinajs.cn/list=" . $stock_code;
|
|
|
- $stockInfo=self::curl_get_data($url);//封装为函数,执行url获取结果并解析
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /****
|
|
|
- * @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;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-?>
|