=0;$i--){ if(!empty($content1[$i])){ $content2 = explode(",",iconv("gbk","utf-8",$content1[$i])); } //解析返回的历史数据 if($i==0){ $date = str_replace("-","",$content2[9]); $t = explode("-",$content2[9]); }else{ $date = str_replace("-","",$content2[8]); $t = explode("-",$content2[8]); } $content3 = explode(",",iconv("gbk","utf-8",$content1[$i+1])); //$date = str_replace(" ","", $date); //print_r($content3); //print_r($t); $date = trim($t[0].$t[1].$t[2]); $time = mktime(0,0,0,floatval($t[1]),floatval($t[2]),floatval($t[0])); $data['time'] = $time; $data['date'] = $date; $data['code'] = $content3[0]; //$data['name'] = $content3[1]; $data['open'] = floatval($content3[2]); $data['high'] = floatval($content3[3]); $data['low'] = floatval($content3[4]); $data['close'] = floatval($content3[5]); $data['turnover'] = floatval($content3[6])/1000000; $data['volume'] = floatval($content3[7]); $data['weeknum'] = floatval($t[0]).''.date('W',trim($time)); $data['monthnum'] = floatval($t[0]).''.intval(date('m',$time)); //将所要存储的数据放入一个数组中 $stock_name = $content3[1]; if($data['close']==0){ continue; } //echo "$date=>$content3[0]"; if(!empty($date)){ //$datas[] = $data; Stock_info::add($stock_name,$content3[0]); //将这支股票的股票名称和股票代码存入 K_line::insert($data); //将这支股票的历史数据存入数据库 //var_dump($data); $flag = 1; } $data = null; } //k_line::insertweekandmonth($datas); } $content = null; $content2 = null; $content3 = null; return $flag; } //获取前复权数据 public function getRec($code, $year){ $stock_code = $code; $f = substr($stock_code, 0, 1); if ($f == "6") { $stock_code = "0".$code; } else { $stock_code = "1".$code; } $url = "http://img1.money.126.net/data/hs/klinederc/day/history/".$year."/".$stock_code.".json"; echo($url."\n"); $flag = 0; //echo $stock_code; //构建所要发送的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 ); $j = json_decode($content); $data = $j->data; for ($i = 0; $i < count($data); $i++) { $d = $data[$i]; $time = strtotime($d[0]); $a['time'] = $time; $a['date'] = $d[0]; $a['code'] = $code; $a['open'] = floatval($d[1]); $a['high'] = floatval($d[3]); $a['low'] = floatval($d[4]); $a['close'] = floatval($d[2]); $a['turnover'] = floatval($d[5]); $a['volume'] = floatval($d[5]); $a['weeknum'] = $year.''.date('W',trim($time)); $a['monthnum'] = $year.''.intval(date('m',$time)); Rec_k_line::insert($a); } return $flag; } public function getIndex($code){ /* if (Index::checkCode($code)) { return -1; } */ $end_date = date("Ymd", time()); $start_date = date("Ymd", time() - 86400*10); $url = "http://quotes.money.163.com/service/chddata.html?code=".$code."&start=".$start_date."&end=".$end_date."&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;"; //echo($url); $flag = 0; //echo $stock_code; //构建所要发送的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("'",$content); //print_r($content); if(!empty($content1[1])){ for($i=count($content1)-1;$i>=0;$i--){ if(!empty($content1[$i])){ $content2 = explode(",",iconv("gbk","utf-8",$content1[$i])); } //解析返回的历史数据 if($i==0){ $date = str_replace("-","",$content2[9]); $t = explode("-",$content2[9]); }else{ $date = str_replace("-","",$content2[8]); $t = explode("-",$content2[8]); } $content3 = explode(",",iconv("gbk","utf-8",$content1[$i+1])); //$date = str_replace(" ","", $date); //print_r($content3); //print_r($t); $date = trim($t[0].$t[1].$t[2]); $time = mktime(0,0,0,floatval($t[1]),floatval($t[2]),floatval($t[0])); $data['time'] = $time; $data['date'] = $date; $data['code'] = $content3[0]; //$data['name'] = $content3[1]; $data['open'] = floatval($content3[2]); $data['high'] = floatval($content3[3]); $data['low'] = floatval($content3[4]); $data['close'] = floatval($content3[5]); $data['turnover'] = floatval($content3[6])/1000000; $data['volume'] = floatval($content3[7]); $data['weeknum'] = floatval($t[0]).''.date('W',trim($time)); $data['monthnum'] = floatval($t[0]).''.intval(date('m',$time)); //将所要存储的数据放入一个数组中 $stock_name = $content3[1]; if($data['close']==0){ continue; } //echo "$date=>$content3[0]"; if(!empty($date)){ //$datas[] = $data; Index::add($stock_name,$content3[0]); //将这支股票的股票名称和股票代码存入 Index_k_line::insert($data); //将这支股票的历史数据存入数据库 //var_dump($data); $flag = 1; } $data = null; } //k_line::insertweekandmonth($datas); } $content = null; $content2 = null; $content3 = null; return $flag; } //发现新股 public function get_new($code) { $info = Stock_info::getInfoByCode($code); if($info) { //echo ("already in\n"); return 0; } $time = time(); $url="http://hq.sinajs.cn/list="; if (strncmp($code, "30",2) == 0) { //创业板 $url .= "sz"; } else if (strncmp($code, "68",2) == 0) { //科创板 $url .= "sh"; } else if (strncmp($code, "60",2) == 0) { //主板 $url .= "sh"; } else if (strncmp($code, "00",2) == 0) { //中小板 $url .= "sz"; } $url .= $code; $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); //print_r($content); curl_close( $curlHandle ); $content1 = explode('"',$content); //print_r($content1); if (!$content1 || $content1[1] == "") { //echo("no data"); return -1; } $content2 = explode(",",iconv("gb2312","utf-8",$content1[1])); //print_r($content2); Stock_info::add($content2[0],$code); return 0; } public function getIndexKLine($code) { //填入指数日K信息 $time = time(); $url="http://hq.sinajs.cn/list="; if (strncmp($code, "3",1) == 0) { //创业板 $url .= "sz"; } else if (strncmp($code, "0",1) == 0) { //科创板 $url .= "sh"; } $url .= $code; //echo($url."\n"); $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); //print_r($content); curl_close( $curlHandle ); $content1 = explode('"',$content); //print_r($content1); if (!$content1 || $content1[1] == "") { //echo("no data"); return -1; } $content2 = explode(",",iconv("gb2312","utf-8",$content1[1])); $t = explode("-",$content2[30]); $date1 =trim($t[0].$t[1].$t[2]); $time = mktime(0,0,0,floatval($t[1]),floatval($t[2]),floatval($t[0])); $close = floatval($content2[3]); $volume = floatval($content2[8]); $turnover = floatval($content2[9]/10000); $data2['code'] = $code; $data2['date'] = $date1; $data2['time'] = $time; $data2['open'] = floatval($content2[1]); $data2['high'] = floatval($content2[4]); $data2['low'] = floatval($content2[5]); $data2['close'] = floatval($close); $data2['volume'] = 0;//floatval($volume);//成交量(手=100股) $data2['turnover'] = 0;//floatval($turnover);//成交额 = 当前价格*当前交易股数 $data2['weeknum'] = floatval($t[0]).''.date('W',trim($time)); $data2['monthnum'] = floatval($t[0]).''.intval(date('m',$time)); //print_r($data2); Index_k_line::insert($data2); return 0; } } ?>