0)) { die("Error in parameter."); } $action=@$_GET['action']; if(!empty($action) && $action=='prepare') { $content="php -f /var/www/ftp2.westgis.ac.cn/wsndata.php $uid"; $filename='wsndata.sh'; if (!file_put_contents($filename, $content, LOCK_EX)) { sleep(1); if (!file_put_contents($filename, $content, LOCK_EX)) { sleep(1); if (!file_put_contents($filename, $content, LOCK_EX)) die("error in write wsndatar.sh"); } } } else { $sql_user = "SELECT distinct uid,site,variable,starttime,endtime from users_pm_down where starttime is not null and result=-1 and type='down' and uid=$uid"; $sth_user = $db->query($sql_user); $rows_user = $sth_user->fetchAll(); //有需要生成的数据 if($rows_user) { foreach($rows_user as $k=>$v ) { //逐个生成 $site = $v['site']; $variable = $v['variable']; $start = date('Y-m-d',strtotime($v['starttime'])); $end = date('Y-m-d',strtotime($v['endtime'])); $uid = $v['uid']; //计算有多少天 $days=round((strtotime($end)-strtotime($start))/3600/24)+1; //获取观测点的名称 $sql_site= "SELECT fld_name from tbl_site_info where fld_site_id=$site"; $sth_site = $db->query($sql_site); $rows_site = $sth_site->fetch(); $sitename= $rows_site['fld_name']; //先为该用户创建一个文件夹 $aimDir_user=$basepath.'wsn_'.$uid; if (!file_exists($aimDir_user)) { $result = mkdir($aimDir_user); } //在该用户文件夹下面再建立一个观测点文件夹 $aimDir_site=$aimDir_user.DIRECTORY_SEPARATOR.$sitename; if (!file_exists($aimDir_site)) { $result = mkdir($aimDir_site); } //选择全部变量 if($variable==-1) { //获取数据 $sql2= "SELECT v.fld_time as time,v.fld_value as value,va.fld_name as variablename FROM tbl_value v left join tbl_variable_info va on v.fld_variable_id=va.fld_variable_id WHERE v.fld_site_id=$site AND v.fld_time>='$start' AND v.fld_time<'$end' ORDER BY time "; $sth2 = $db->query($sql2); $rows2 = $sth2->fetchAll(); $endtime=date("Y-m-d",strtotime($start)+24*3600); $head = "Time,Variable,Value, \n"; $html=""; foreach ($rows2 as $k=>$v) { //组装数据 if ($v['time']>=$start && $v['time']<$endtime) { $html.=$v['time'].",".$v['variablename'].",".$v['value']."\n"; } elseif ($v['time']>=$endtime) { //写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_all_".$resulttime.".CSV","w+"); fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 $start=$endtime; $endtime=date("Y-m-d",strtotime($start)+24*3600); $html=$v['time'].",".$v['variablename'].",".$v['value']."\n"; } if ($k==count($rows2)) //last record { //写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_all_".$resulttime.".CSV","w+"); fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 } } print $sitename."\r\n"; $sql_up= "update users_pm_down set result=0 WHERE site=$site and variable=-1 and uid=$uid and result=-1 and type='down'"; $db->query($sql_up); } else { //获取观测变量的名称 $sql3= "SELECT fld_name from tbl_variable_info where fld_variable_id=$variable"; $sth3 = $db->query($sql3); $rows3 = $sth3->fetch(); $varname=$rows3['fld_name']; //获取数据 $endtime=date("Y-m-d",strtotime($start)+24*3600); $sql2= "SELECT v.fld_time as time,v.fld_value as value,va.fld_name as variablename FROM tbl_value v left join tbl_variable_info va on v.fld_variable_id=va.fld_variable_id WHERE v.fld_variable_id=$variable and v.fld_site_id=$site AND v.fld_time>='$start' AND v.fld_time<='$end' ORDER BY time "; $sth2 = $db->query($sql2); $rows2 = $sth2->fetchAll(); $head = "Time,Variable,Value, \n"; $html=""; foreach ($rows2 as $k=>$v) { //组装数据 if ($v['time']>=$start && $v['time']<$endtime) { $html.=$v['time'].",".$v['variablename'].",".$v['value']."\n"; } elseif ($v['time']>=$endtime) { //写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_".$varname."_".$resulttime.".CSV","w+"); fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 $start=$endtime; $endtime=date("Y-m-d",strtotime($start)+24*3600); $html=$v['time'].",".$v['variablename'].",".$v['value']."\n"; } if ($k==count($rows2)) //last record { //写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_".$varname."_".$resulttime.".CSV","w+"); fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 } } print $sitename.'--'.$varname."\r\n"; //给处理的数据做个标记result=0 $sql_up= "update users_pm_down set result=0 WHERE site=$site and variable=$variable and uid=$uid and result=-1 and type='down'"; $db->query($sql_up); } } } }