php 采集彩票双色球数据与简单统计(2)
采集开彩票双色球数据,以及分析彩票双色球数据--采集与统计实例nbsp;~nbsp;4KBnbsp;nbsp;nbsp;nbsp;下载(45) ?php/** 采集开彩票双色球数据,以及分析彩票双色球
采集开彩票双色球数据,以及分析彩票双色球数据--采集与统计实例 ~ 4KB 下载(45)
<?php
/*
* 采集开彩票双色球数据,以及分析彩票双色球数据
*/
header("Content-type: text/html; charset=utf-8");
class getSseqiu {
var $purl= 'http://www.gdfc.org.cn/datas/history/twocolorball/history_*.html';
var $files = 'caipiao.txt';
var $_list ;
function main($start,$end){
$this->_list = $this->getFile();
for( $i=$start; $i<=$end; $i++ ){
$url = str_ireplace('*',$i,$this->purl);
$this->getContent($url);
}
return true;
}
function getContent($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
if(!$data){
return '';
}
# 切割整个页面
$content = explode('<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#d3d3d3">',$data);
$content = explode('</table>',$content[1]);
# 匹配数据
preg_match_all("/<tr>(.*?)<\/tr>/is", $content[0] ,$out);
unset($out[1][0]);
$con_all = $out[1];
$qishu = null;
ob_start();
foreach($con_all as $key => $val){
preg_match("/<td align=\"center\" bgcolor=\"(#FFFFFF|#faf8e9)\">(.*?)<\/td>/", $val,$matches_1);
$title = $matches_1[2];
preg_match("/<td align=\"center\" bgcolor=\"(#FFFFFF|#faf8e9)\" class=\"td-luckyno\" luckyNo=\"(.*?)\"><\/td>/", $val,$matches_2);
$value = $matches_2[2];
$str = trim($title.':'.$value);
if(!in_array($str,$this->_list)){
echo "\n".$str;
}
}
$ob_content = ob_get_contents();
ob_end_clean();
$this->saveFile($ob_content);
}
#保存文件
function saveFile($data){
if(!is_file($this->files)){
$fp = fopen($this->files,'w+');
}else{
$fp = fopen($this->files,'a+');
}
fwrite($fp, $data);
fclose($fp);
}
#取文件 为数组
function getFile(){
$arr = array();
if(!is_file($this->files)){
return $arr;
}
$fp = fopen($this->files,'r');
while (!feof($fp)) {
$arr[] = trim(fgets($fp));
}
fclose($fp);
return $arr;
}
function detachNum(){
$file_list = $this->getFile();
array_shift($file_list);
$reu = array();
foreach($file_list as $key => $val){
$temp = $this->getLayout($val);
$reu[$temp[0]] = $temp;
}
return $reu;
}
function getLayout($data){
$reu = array();
$reu = explode(':',$data);
$reu[2] = substr($reu[1], -2, 2);
$reu[1] = substr($reu[1],0,strlen($reu[1])-2);
return $reu;
}
# 数据处理
function dataDispose($data,$qishu){
if(!is_array($data)) return false;
$coun = count($data);
$foolr = floor($coun/2);
$foolr_qishu = $foolr+1;
$red = array();
$blue = array();
$num = 1;
foreach($data as $key => $val){
if($val[0] == $qishu){
$num = $foolr;
$weight_num = $foolr_qishu;
}elseif($val[0]<$qishu){
$weight_num = $num ++;
}elseif($val[0]>$qishu){
$weight_num = $num --;
}
# 红
$son_arr = $this->stringNumber($val[1]);
foreach($son_arr as $k2 => $v2){
$red[intval($v2)]['hits'] = $red[intval($v2)]['hits']+1;
$red[intval($v2)]['weight'] = $red[intval($v2)]['weight']+$weight_num;
}
# 蓝
$blue[intval($val[2])]['hits'] = $blue[intval($val[2])]['hits']+1;
$blue[intval($val[2])]['weight'] = $blue[intval($val[2])]['weight']+$weight_num;
}
for( $i=0; $i<=33 ;$i++ ){
if($red[$i]){
$red[$i]['mean'] = round($red[$i]['hits']/$red[$i]['weight'],2) ;
}
}
for( $i=0; $i<=16 ;$i++ ){
if($blue[$i]){
$blue[$i]['mean'] = round($blue[$i]['hits']/$blue[$i]['weight'],2);
}
}
return array( 'red'=>$red, 'blue'=>$blue);
}
function stringNumber($string){
$list = array();
$list[] = substr($string, 0, 2);
$list[] = substr($string, 2, 2);
$list[] = substr($string, 4, 2);
$list[] = substr($string, 6, 2);
$list[] = substr($string, 8, 2);
$list[] = substr($string, 10, 2);
return $list;
}
// function dbMysql(){
// $conn = mysql_connect('localhost','root','root') or die('连接Mysql错误:'.mysql_error());
// mysql_select_db('caipiao',$conn) or die('连接数据库错误:'.mysql_error());
// mysql_query('set names gbk');
// }
}
// 采集数据
//$start = 1;
//$end = 1;
//$Ss = new getSseqiu();
//$Ss->main($start, $end);
?>
精彩图集
精彩文章






