$item) { $tempItem = substr($item, stripos($item, "=\"") + 2); //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510, ="之后部分 $tempItem = substr($tempItem, 0, strripos($tempItem, "\"")); //获取 万 科A,30.94,0.14,0.45,584039,178827"; ";之前部分 $tempItem = trim($tempItem); if (!empty($tempItem)) { $arr2[$index] = explode(",", $tempItem);//分割 $arr2[$index]['code'] = $codeList[$codeIndex]; $index++; } $codeIndex++; } return $arr2; } //获取全部股票代码和名称列表 static public function getStockCodeAndNameList($exchange, $sector, $start, $end) { $url = "http://hq.sinajs.cn/list="; $data['exchange'] = $exchange; $data['sector'] = $sector; $codeList = array(); $codeIndex = 0; for($code = $start;$code <= $end; $code++){ $codeStr = sprintf('%06s', $code); $url .= 's_'.$exchange.$codeStr.','; $codeList[$codeIndex] = $codeStr; $codeIndex++; } $contentList = self::curl_get_data_list($url, $codeList); foreach ($contentList as $key => $item) { $data['code'] = $item['code']; $data['name'] = trim($item[0]); if (!empty($item[0])) { //判断非法股票代码 Stock::updateCodeAndName($data); } } return; } /**** * @param $code * @return string * 判断股票的类型,属于创业板,科创板,主板,$code */ static public function get_boniu_block($code) { if (strncmp($code, "30", 2) == 0) { //创业板 $code .= "sz"; } else if (strncmp($code, "68", 2) == 0) { //科创板 $code .= "sh"; } else if (strncmp($code, "60", 2) == 0) { //主板 $code .= "sh"; } else if (strncmp($code, "00", 2) == 0) { //中小板 $code .= "sz"; } return $code; } /**** * @param string $code * @return mixed //上证指数表(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'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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); } /**** * @param string $code * @return mixed * 深成指数表(boniu_index_scz) */ static public function get_boniu_index_scz($code="399001") { $url = "http://hq.sinajs.cn/list=s_sz".$code; $content3=sina::curl_get_data($url); $data['increase_value'] = floatval($content3[3]);//涨跌率 $data2=self::get_info_code($code);//调用另一个函数获取其他数据如开盘价等等 $data['increase_price'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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_scz::add($data); } /*** * @param string $code * @return mixed * 上证50指数表(boniu_index_sh50) 000016 */ static public function get_boniu_index_sh50($code="000016") { $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'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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_sh50::add($data); } /*** * @param string $code * @return mixed * //沪深300指数表(boniu_index_csi300) 399300 */ static public function get_boniu_index_csi300($code="399300") { $url = "http://hq.sinajs.cn/list=s_sz".$code; $content3=sina::curl_get_data($url); $data['increase_value'] = floatval($content3[3]);//涨跌率 $data2=self::get_info_code($code);//调用另一个函数获取其他数据如开盘价等等 $data['increase_price'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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_csi300::add($data); } // /*** * @param string $code * @return mixed * 创业板指数表(boniu_index_gem) 399006 */ static public function get_boniu_index_gem($code="399006") { $url = "http://hq.sinajs.cn/list=s_sz".$code; $content3=sina::curl_get_data($url); $data['increase_value'] = floatval($content3[3]);//涨跌率 $data2=self::get_info_code($code);//调用另一个函数获取其他数据如开盘价等等 $data['increase_price'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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_gem::add($data); } /**** * @param string $code * @return mixed * //科创50指数( boniu_index_kc50) 000688 */ static public function get_boniu_index_kc50($code="000688") { $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'] = floatval($data2[3]-$data2[2]);//涨跌 // 涨跌价-当日股票最新价与前一日收盘价格(或前一日收盘指数) $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_kc50::add($data); } // /*** * @param $code * @param $date * 根据股票代码获取股票的实时信息 */ static public function get_info_code($code){ // $stock_code = $code; // $f = substr($stock_code, 0, 1); // if ($f == "6" || $f == "0" ) { // $stock_code = "sh" . $code; // } else { // $stock_code = "sz" . $code; // } $stock_code= self::get_boniu_block($code); $url = "http://hq.sinajs.cn/list=" . $stock_code; $content3=sina::curl_get_data($url);//封装为函数,执行url获取结果并解析 return $content3; } /*** * @param $code * @param $date * @return mixed * 日k线表 day_k_******(每月存一张表,比如boniu_day_k_202011) * */ 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; // } $stock_code= self::get_boniu_block($code); $url = "http://hq.sinajs.cn/list=" . $stock_code; $content3=sina::curl_get_data($url);//封装为函数, $data['date'] = $content3[30]; $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['value'] = $content3[9];//成交金额以万为单位 return Day_k_base::add($data, $date); } //除权除息表(boniu_xrxd_log) //st记录表(boniu_st_log) //获取历史数据的表 } ?>