File "recv_OLD20190711.php"

Full path: /www/shimooguni/recv/OLD/recv_OLD20190711.php
File size: 6.25 KiB (6395 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//	自動でクラスを参照する
//	関数名	:	__autoload()
//	備考	:	参照先は./class/XXX.phpとする
//	更新	:	2012/10/19 KMK-Teraoka
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//EXTRACT($_POST);
EXTRACT($_GET);

/////////////////////////////////////////////////////////////////////////////////////
// 最初に保存ファイル名を取得しておく(ファイルが存在しなかったらヘッダーを作成)
$data_dir = "./data/";
$dname = $GLOBALS["data_dir"] . date("Ym") . "/";
$fname = $dname . date("Ymd") . ".log";
if (!file_exists($dname)) {
	if (!create_data_directory($dname)) {
		return false;
	}
}
if (!file_exists($fname)) {
	if (!create_csv_header($fname)) {
		return false;
	}
}

// データディレクトリの作成
function create_data_directory($dname) {
	if (!mkdir($dname, 0755, true)) {
		return false;
	}
	
	return true;
}

// CSVファイルとヘッダーの作成
function create_csv_header($fname) {
	$fp = fopen($fname, "w");
	if (!$fp) {
		return false;
	}
//	fwrite($fp, "[DataTime],date,time,roll,pitch,yaw,ax,ay,az\n");
	fclose($fp);
	
	return true;
}

function double_explode($word1, $word2, $str) {
    $return = array();

    //分割文字その1で文字列を分割
    $array = explode($word1, $str);

    //各配列を分割文字その2で分割して結合していく
    foreach ($array as $value) {
        $return = array_merge($return, explode($word2, $value));
    }
    return $return;
}


/////////////////////////////////////////////////////////////////////////////////////	
//最新データのパス(DBへINSERT用)
$input_csv_path = "/www/shimooguni/recv/new.csv";


$HOST = "192.168.100.153";
$DB = "shimooguni";
$USER = "postgres";
$PASS = "postgres";


$DATA_TABLE = "weather.data_log";
$DATA_TABLE_1H = "weather.data_log_1h";
$DATA_TABLE_DAY = "weather.data_log_day";
$DATA_TABLE_WEEK = "weather.data_log_week";
$DATA_TABLE_MONTH = "weather.data_log_month";
$DATA_TABLE_NEW = "weather.data_log_new";



$date_ = date("Y-m-d",time()) ;
//$data_ = isset($_POST["data"]) ? htmlspecialchars($_POST["data"]) : "";
$data_ = isset($_GET["data"]) ? htmlspecialchars($_GET["data"]) : "";
$fp = fopen($fname,"a");
fwrite($fp,$data_ );
fclose($fp);

//日付確認用
$data_r = file_get_contents($input_csv_path);
$data_a = double_explode(",","\n", $data_r);


//データの重複の確認
//前回の時間を検索
$data_A = double_explode(",","\n", $data_);
$ct = count($data_A) -2;
//

//更新フラグ
$reFlag = 0;

if($data_a[1] && $data_a[16])
{
	if((substr_count($data_ ,$data_a[1]) == 1))
	{
	}
	else
	{
		if(substr_count($data_,$data_a[16]) == 1)
		{
			for($k = 14;$k <=$ct;$k++)
			{
				$date_ct = 14;
				if($k == $date_ct)
				{
					$out_data .= $date_ ."," .$data_A[$k];
				}
				else
				{
					$out_data .=  "," .$data_A[$k];
				}
			}
		}
		else
		{
			$date_ct = 0;
			for($k = 0;$k <=$ct;$k++)
			{		
				if($k == $date_ct)
				{
					$out_data .= $date_ ."," .$data_A[$k];
					$date_ct = $date_ct + 14;
				}
				else
				{
					$out_data .=  "," .$data_A[$k];
				}
				
				if($k == 13) $out_data .= "\n";
			}
		}

		$fp2 = fopen($input_csv_path,"w");
		fwrite($fp2, $out_data);
		fclose($fp2);
		
		//データベースへ登録
		$cm = "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_1H ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_DAY ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_MONTH ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_WEEK ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$a = exec($cm);
		//$fpt =fopen("test.txt","a");
		//fwrite($fpt,$cm ."\n");
		//fclose($fpt);
		$reFlag = 1;
	}
}
else
{
	if(!strcmp($data_a[1],$data_A[14]))
	{
	}
	else
	{
		if(!strcmp($data_a[1],$data_A[0]))
		{
			for($k = 14;$k <=$ct;$k++)
			{
				$date_ct = 14;
				if($k == $date_ct)
				{
					$out_data .= $date_ ."," .$data_A[$k];
				}
				else
				{
					$out_data .=  "," .$data_A[$k];
				}
			}
		}
		else
		{
			$date_ct = 0;
			for($k = 0;$k <=$ct;$k++)
			{		
				if($k == $date_ct)
				{
					$out_data .= $date_ ."," .$data_A[$k];
					$date_ct = $date_ct + 14;
				}
				else
				{
					$out_data .=  "," .$data_A[$k];
				}
				
				if($k == 13) $out_data .= "\n";
			}
		}
		$fp2 = fopen($input_csv_path,"w");
		fwrite($fp2, $out_data);
		fclose($fp2);
		
		//データベースへ登録
		$cm = "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_1H ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_DAY ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_MONTH ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$cm .= "sudo -u postgres psql shimooguni -c \" COPY " .$DATA_TABLE_WEEK ." FROM '" .$input_csv_path ."' WITH CSV\";";
		$a = exec($cm);
//		$fpt =fopen("test.txt","a");
//		fwrite($fpt,$cm  ."__result:" .$a ."\n");
//		fclose($fpt);
		$reFlag = 1;
	}
}


//================================================
//	データベース接続
//	備考		:	
//	更新		:	2013/03/12 KMK-Yokosuka
//================================================
$conn = pg_connect("
	host	=	". $HOST. "
	dbname	=	". $DB. "
	user	=	". $USER. "
	password=	". $PASS. "
");



//////////////最新データの出力
if($reFlag == 1)
{
	$new_data_sel  = "SELECT * FROM " .$DATA_TABLE ." ORDER BY date desc,data1 desc limit 1";
	$res = pg_query($conn,$new_data_sel);
	$row = pg_fetch_array($res,0);

	$fp_d = fopen("/www/shimooguni/recv/new_data_log.txt", "w");

	fwrite($fp_d,$row[0] ." " .$row[1] ."," .number_format($row[3],1,"." ,""));
	fwrite($fp_d,"," .number_format($row[4],1,"." ,""));
	fwrite($fp_d,"," .number_format($row[5],1,"." ,""));
	fwrite($fp_d,"," .$row[6]);
	fwrite($fp_d,"," .number_format($row[7],1,"." ,""));

	fclose($fp_d);
	
	$rul = exec("/usr/bin/php -f /www/shimooguni/recv/data_calc_output.php");
	
	
}

?>

PHP File Manager