| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- <?php
- /**
- * @author:王刚涛
- * 用于获取 并存入数据库,通过$url,可以设置需要获取的时间段
- */
- error_reporting( E_ALL&~E_NOTICE );
-
-
- class netEasy
- {
- public function get($code){
- $stock_code = $code;
- if (Stock_info::checkCode($code))
- {
- return -1;
- }
- $end_date = date("Ymd", time());
- $f = substr($stock_code, 0, 1);
- if ($f == "6")
- {
- $stock_code = "0".$code;
- }
- else
- {
- $stock_code = "1".$code;
- }
- $start_date = date("Ymd", time() - 86400*10);
- $url = "http://quotes.money.163.com/service/chddata.html?code=".$stock_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;
- 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;
- }
-
- }
-
-
-
- ?>
|