php_lib.inc 8.32 KB
<?PHP 

// =======指定した年月日から曜日を得るクラス=======

// 今日の年月日
// $yr = date('Y',time());	// 西暦年…'Y'指定で2001などと表示
// $mt = date('m',time());	// 月…'m'指定で02などと表示
// $dy = date('j',time());	// 日…'j'指定で25などと表示

// インスタンスの生成(コンストラクタの呼出し)
// $get = new GetWeek($yr,$mt,$dy);	// 現在年月
// echo $get -> week_get();		//(関数を引数無しで呼び出す)

// プロパティの呼出し
// print("year = ".$get -> year."<br>\n");
// print("month = ".$get -> month."<br>\n");
// print("day = ".$get -> day."<br>\n");

class GetWeek{
	// フィールド
	var $year;
	var $month;
	var $day;
	// コンストラクタ
	function GetWeek($y, $m, $d) {
		$this->year = $y;
		$this->month = $m;
		$this->day = $d;
	}
	// 関数
	function week_get() {
		if ($this->month <= 2) {
			$this->year-1;
			$this->month += 12;
		}
		// ツェラーの公式
		$week_num = (($this->year + floor($this->year/4) - floor($this->year/100) + floor($this->year/400)+ floor((13*$this->month + 8)/5) + $this->day) % 7);
		$week_logo = array('SUN','MON','TUE','WED','THU','FRI','SAT');
		return $week_logo[$week_num];
	}
}

// =======HTMLの始まりと終わり=======

// $top = new HtmlLogo;
// echo $top -> html_top($tl_name, $bg_color, $bg_image);
// $bot = new HtmlLogo;
// echo $bot -> html_bot();

class HtmlLogo{
	// フィールド
	var $t_name;
	var $b_color;
	var $b_gif;
	// HTML_TOP
	function html_top($tn, $bc, $bi) {
$this->t_name = $tn;
$this->b_color = $bc;
$this->b_gif = $bi;
print ("
<html>
<head>
<meta http-equiv=content-type content=\"text/html; charset=shift_jis\">
<title>$this->t_name</title>
</head>
<body background=\"$this->b_gif\" bgcolor=\"$this->b_color\">
");
	}
	// Html_Bot{
	function html_bot() {
print ("
</body>
</html>
");
	}
}

// =======閏年の判定=======
// $leap = new LeapYear;
// echo $leap -> leap_year($year);

class LeapYear{
	var $year_l;
	function leap_year($ly){
		$this -> year_l = $ly;
		if ($this -> year_l % 100) {		// 100 で割り切れない
			if ($this -> year_l % 4) {	// 4 で割り切れない
				return 0;	// 平年
			}
			else {
				return 1;	// 閏年
			}
		}
		else {				// 100 で割り切れる
			if ($this -> year_l % 400) {	// 400 で割り切れない
				return 0;	// 平年
			}
			else {				// 400 で割り切れる
				if ($this -> year_l % 4000) {	// 4000 で割り切れない
					return 1;	// 閏年
				}
				else {			// 4000 で割り切れる
					return 0;	// 平年
				}
			}
		}
	}
}

// =======現在年月日の取得=======
// $date_g = new GetDate();
// echo $date_g -> get_date_ymd();

class GetDate{
	// フィールド
	var $nen;
	var $tuki;
	var $niti;
	// コンストラクタ
	function GetDate(){
		$this -> nen = date('Y',time());	// 西暦年…'Y'指定で2001などと表示
		$this -> tuki = date('m',time());	// 月…'m'指定で02などと表示
		$this -> niti = date('d',time());	// 日…'d'指定で09などと表示
	}
	// 関数
	function get_date_ymd(){
		return ($this -> nen."/".$this -> tuki."/".$this -> niti);
	}
}

// =======現在時刻の取得=======
// $time_g = new GetTime();
// echo $time_g -> get_time_jfb();	現在の時:分:秒
// echo $time_g -> get_tuki_nissu();	今月の日数

class GetTime{
	// フィールド
	var $ji;
	var $fun;
	var $byo;
	var $nsu;
	// コンストラクタ
	function GetTime(){
		$this -> ji = date('H',time());		// 時…'H'指定で01などと表示
		$this -> fun = date('i',time());	// 分…'i'指定で02などと表示
		$this -> byo = date('s',time());	// 秒…'s'指定で25などと表示
		$this -> nsu = date('t',time());	// 月日数…'t'指定で31などと表示
	}
	// 関数
	function get_time_jfb(){
		return ($this -> ji.":".$this -> fun.":".$this -> byo);
	}
	function get_tuki_nissu(){
		return $this -> nsu;
	}
}

// =======ファイルオープン=======
// $flop = new FileOpen("file.txt","r");	// or "r+" …呼び出し書き込み(ファイルポインタ先頭)
// $fline = $flop -> file_open_ary();		// 配列 $flineへ
// $flop -> file_open();		// 一覧表示

class FileOpen{
	// フィールド
	var $f_name;
	var $f_mode;
	// コンストラクタ
	function FileOpen($fname,$fmode){
		$this -> f_name = $fname;	// ファイル名
		$this -> f_mode = $fmode;	// モード
	}
	// 関数(プリント)
	function file_open(){
		if(file_exists($this -> f_name)){
			$fp = fopen($this -> f_name,$this -> f_mode);
		}else{
			echo $this -> f_name."のファイルが見つかりません!<br>\n";
			exit(0);
		}
		while(!feof($fp)){ 
			echo fgets($fp,256)."<br>\n";
		}
		fclose($fp);
	}
	// 関数(配列格納)
	function file_open_ary(){
		if(file_exists($this -> f_name)){
			return file($this -> f_name);
		}else{
			return "ファイルが見つかりません!\n";
			exit(0);
		}
	}
}

// =======ファイル書込み=======
// $fwlop = new FileWrite("file2.txt","w","この文を書き込みます\n");	// or "r+" …呼び出し書き込み
// $fwlop -> file_write();	// ファイルへの書込み(後部から追加)
// $fwlop -> file_front();	// ファイルへの書込み(前部から追加)
// $fwlop -> file_suit();	// ファイルへの書込み(重ね書き)

class FileWrite{
	// フィールド
	var $fw_name;
	var $fw_mode;
	var $fw_data;
	// コンストラクタ
	function FileWrite($fwname,$fwmode,$fwdata){
		$this -> fw_name = $fwname;	// ファイル名
		$this -> fw_mode = $fwmode;	// モード
		$this -> fw_data = $fwdata;	// 書込みデータ
	}
	// 関数(プリント後部から追加)
	function file_write(){
		if(file_exists($this -> fw_name)){
			$fwp = fopen($this -> fw_name,$this -> fw_mode);
		}else{
			echo $this -> fw_name."のファイルが見つかりません!<br>\n";
			exit(0);
		}
		flock($fwp,2);	// ファイルロック
		fseek($fwp,0,SEEK_END);	// ファイルポインタを終端にセット
		fputs($fwp,$this -> fw_data);	// ファイルポインタに書込む
		flock($fwp,3);	// ファイルロック解除
		fclose($fwp);
	}
	// 関数(プリント前部から追加)
	function file_front(){
		if(file_exists($this -> fw_name)){
			$fwf = fopen($this -> fw_name,$this -> fw_mode);
		}else{
			echo $this -> fw_name."のファイルが見つかりません!<br>\n";
			exit(0);
		}
		flock($fwf,2);	// ファイルロック
		// fseek($fwf,0,SEEK_END);	// ファイルポインタを終端にセット
		rewind($fwf); // ポインタを先頭へ
		fputs($fwf,$this -> fw_data);	// ファイルポインタに書込む
		flock($fwf,3);	// ファイルロック解除
		fclose($fwf);
	}
	// 関数(プリント重ね書き)
	function file_suit(){
		if(file_exists($this -> fw_name)){
			$fws = fopen($this -> fw_name,$this -> fw_mode);
		}else{
			echo $this -> fw_name."のファイルが見つかりません!<br>\n";
			exit(0);
		}
		flock($fws,2);	// ファイルロック
		fwrite($fws,$this -> fw_data); // ファイルの書込み
		flock($fws,3);	// ファイルロック解除
		fclose($fws);
	}
}

// =======カウンターUPクラス=======
// $counter = new GetCount($ct,$bearm);	// オブジェクト($ct 増やす前のカウンタ値)($bearm カウンタ桁数(3〜10の範囲))
// echo $counter -> get_cnt_num();	// メソッド(桁合せして増えたカウント値)
// echo $counter -> new_cnt;	// プロパティ(桁合せ無しで増えたカウント値)

class GetCount{
	// フィールド
	var $new_cnt;
	var $bearm_v;
	// コンストラクタ
	function GetCount($num,$bm){
		$num++;	// カウンターを1個増やす
		$this -> new_cnt = $num;	// プロパティに代入する
		$this -> bearm_v = $bm;	// プロパティに代入する
	}
	// 関数
	function get_cnt_num(){
		$cnt_str = '0000000000'.$this -> new_cnt;	// 文字列の連結
		$str_rem = strlen($cnt_str)-$this -> bearm_v;	// 文字列の長さを数え余分な文字数を得る
		$cnt = substr($cnt_str,$str_rem,$this -> bearm_v);	// 文字列の後部$bm桁を取出す
		return ($cnt);	// 値を返す
	}
}

// =======POSTgreSQLデータベース接続=======

// $host_n="";	データベースホスト名(デフォルトはUnix domain socket)
// $db_n="fujikodb";	データベース名
// $dbc = new PgsDbase;	クラス PgsDbase のインスタンス生成
// $conect = $dbc -> connect($host_n,$db_n);	関数 connect() へのアクセス
// =SQLの例= … data2 はテーブル名、column1〜column10 までのカラム
// @$back = pg_exec($conect, "select * from data2 where column2 = 1 and column3 ='uchi'");	読出
// @$back = pg_exec($conect,"update data2 set oidno=$oid where column1 = '$idno'");	変更
// @$back = pg_exec($conect,"insert into data2  values(column1,'column2','column3','column4','column5','column6','column7','column8',column9,column10)");	追加
// @$back = pg_exec($conect,"delete from data2 where column1 < 100");	削除
// $row = pg_numrows($back);	レコード数

class PgsDbase{
	// フィールド
	var  $host_name;
	var  $db_name;
	// データベース接続の関数
	function connect($hostname,$dbname) {
		$this->host_name = $hostname;
		$this->db_name = $dbname;
		$conect_db = pg_connect($this->host_name,"",$this->db_name);
  		if (!$conect_db) {
      			return "データベース $this->db_name に接続できません。";
      			exit;
      		}else{
      			return $conect_db;
      		}
	}
}

?>