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
<?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");
}
?>