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 * 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(!empty($rows_user)) { foreach($rows_user as $k=>$v ) { //逐个生成 $site = $v['site']; $variable = $v['variable']; $start = $v['starttime']; $end = $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']; //获取用户的邮箱 $sql_mail= "SELECT email from users where id=$uid"; $sth_mail = $db->query($sql_mail); $rows_mail = $sth_mail->fetch(); if(empty($rows_mail)) {$rows_mail['email']=="wuadan@lzb.ac.cn";} //先为该用户创建一个文件夹 $aimDir_user=$basepath.'wsn_'.$uid; if (!file_exists($aimDir_user)) { $result = mkdir($aimDir_user); } //在该用户文件夹下面再建立一个观测点文件夹 $aimDir_site=$aimDir_user.DIRECTORY_SEPARATOR.$site; if (!file_exists($aimDir_site)) { $result = mkdir($aimDir_site); } //选择全部变量 if($variable==-1) { //获取数据 for ($i = 1; $i <= $days; $i++) { $endtime=date("Y-m-d 00:00:00",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_site_id=$site AND v.fld_time>='$start' AND v.fld_time<'$endtime' ORDER BY time "; $sth2 = $db->query($sql2); $rows2 = $sth2->fetchAll(); $datamount=count( $rows2); //组装数据 $html=""; foreach($rows2 as $k=>$v) { $time[$k] = $v['time']; $value[$k] = $v['value']; $var[$k] = $v['variablename']; $html .=$time[$k].",".$var[$k].",".$value[$k]."\n"; } $head = "Time,Variable,Value, \n"; //将数据写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_all_".$resulttime.".CSV","a"); //打开csv文件,如果不存在则创建 fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 $start = $endtime; } $sql_up= "update users_pm_down set result=0 WHERE site=$site and variable=-1 and uid=$uid and result=-1 and type='down'"; $sth_up = $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=""; for ($i = 1; $i <= $days; $i++) { $endtime=date("Y-m-d H:m:s",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<='$endtime' ORDER BY time "; $sth2 = $db->query($sql2); $rows2 = $sth2->fetchAll(); $datamount=count( $rows2); //组装数据 $html=""; foreach($rows2 as $k=>$v) { $time[$k] = $v['time']; $value[$k] = $v['value']; $var[$k] = $v['variablename']; $html .=$time[$k].",".$var[$k].",".$value[$k]."\n"; } $head = "Time,Variable,Value, \n"; //写入文件 $resulttime=date("Ymd",strtotime($start)); $fp = fopen($aimDir_site.DIRECTORY_SEPARATOR.$sitename."_".$varname."_".$resulttime.".CSV","a+"); fwrite($fp,$head.$html); //写入数据 fclose($fp); //关闭文件句柄 $start = $endtime; } //给处理的数据做个标记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'"; $sth_up = $db->query($sql_up); } } } }