Size = filesize ($file_name) + 1; if($this->Size == FALSE) $this->Size = NULL; $this->fp = @fopen ($file_name,$open_mode) or Error_Msg("Open Error : $file_name"); } //ポインタを閉じる function close () { return @fclose($this->fp); } //一行読み込む function gets ($max_size) { return is_null($max_size)?@fgets($this->fp,$this->Size):@fgets($this->fp,$max_size); } //書き込む function puts ($dat) { return @fwrite($this->fp,$dat); } //EOFに達したかチェック function eof () { return @feof($this->fp); } //ファイルロック function lock ($lock_type) { return ($lock_type > 2)?0:@flock($this->fp,$lock_type); } //ファイルアンック function unlock () { return @flock($this->fp,3); } } //登録人数取得 //$FileName : メンバー数取得するログファイル //戻り値 : メンバー数 function Get_Count_List ($FileName) { $list = Read_File($FileName); $counter = 0; while (list($key, $val) = each ($list)) { list(,,,,$flg) = explode("<>", $val); if($flg) $counter++; } return $counter; } //メインスキンから表スキン取得 //$FileName : メインスキンファイル //$skin_type: 表スキンタイプ //戻り値 : 表スキン function Get_Main_Skin ($FileName,$skin_type) { $skin_html = ""; $main_skin = Read_File($FileName); if($skin_type == "List" || $skin_type == "ListNo"){ $main_skin = split("|<\/MAINLIST>",implode("",$main_skin)); if(count($main_skin) > 2) $skin_html = $main_skin[1]; }else if($skin_type == "Report"){ $main_skin = split("|<\/REPORTLIST>",implode("",$main_skin)); if(count($main_skin) > 2) $skin_html = $main_skin[1]; } return $skin_html; } //ファイル読み込み //$FileName : 読み込むファイル名 //戻り値 : 読み込んだデータの配列 function Read_File ($FileName) { if(!file_exists($FileName)) Error_Msg("Open Error : $FileName"); $file_data = file($FileName); return $file_data; } //ファイル1行読み込み //$FileName : 読み込むファイル名 //戻り値 : 読み込んだデータ function Read_File2 ($FileName) { if(!file_exists($FileName)) Error_Msg("Open Error : $FileName"); $file = new File($FileName,'r'); $Buf = $file->gets(NULL); $file->close; return $Buf; } //ファイル書き込み //$FileName : 書き込みファイル名 //$buf : 書き込むデータ //戻り値 : function Write_File ($FileName,$buf) { $file = new File($FileName,'w'); $file->lock(2); $ret = $file->puts($buf); $file->unlock(); $file->close(); return $ret; } //ファイル追加書き込み //$FileName : 書き込みファイル名 //$buf : 書き込むデータ //戻り値 : function Add_File ($FileName,$buf) { $file = new File($FileName,'a'); $file->lock(2); $ret = $file->puts($buf); $file->unlock(); $file->close(); return $ret; } //パスワード暗号化 //$Pass : 暗号化するパスワード //戻り値 : 暗号化したパスワード function Encrypt ($Pass) { mt_srand(microtime()*5846); $salt = md5(uniqid(mt_rand(),1)); $salt2 = substr($salt,mt_rand(0,strlen($salt)),1); $salt = md5(uniqid(mt_rand(),1)); $salt2 .= substr($salt,mt_rand(0,strlen($salt)),1); return crypt($Pass,$salt2); } //パスワード複合化 //$Pass : 暗号化されたパスワード //戻り値 : 1:パスワード同じ 0:パスワードが違う function Decrypt ($Pass,$EncPass) { if(strcmp(crypt($Pass,substr($EncPass,0,2)),$EncPass) == 0) return TRUE; else return FALSE; } //時間取得 //戻り値 : 2004/01/26 形式の日付が返される function Get_Time () { return date("Y/m/d"); } //改行を
変換 //$line : 改行を
に変換する文字列 //戻り値 :
に変換された文字列 function Tag2Br ($line) { $line = preg_replace('/\r\n/','
',$line); $line = preg_replace('/\n/','
',$line); return $line; } //
を改行変換 //$line :
を改行に変換する文字列 //戻り値 : 改行に変換された文字列 function Br2Tag ($line) { return preg_replace('/
/i',"\n",$line); } //カウンター //$FileName : カウンターログファイル //戻り値 : カウント数 function Set_Counter($FileName,$con_c) { $cout = Read_File2($FileName); $counter = 0; if($cout != "") list($counter,$ip) = explode("<>",$cout); if($_SERVER[REMOTE_ADDR] != $ip){ $counter++; //カウンターを増やす Write_File($FileName,"$counter<>$_SERVER[REMOTE_ADDR]<>"); } return sprintf(sprintf("%%0%dld",$con_c),$counter); } //'<','>','&','"'を特殊文字に変換 //$line : 変換する文字列 //戻り値 : 変換された文字列 function html2Spchar ($line) { return htmlspecialchars($line,1); } //比較 function str_val_cmp ($str1,$str2) { if(preg_match('/[^0-9\+\-]/',$str1) || preg_match('/[^0-9\+\-]/',$str2)){ return strcmp($str1,$str2); }else{ if($str1 == $str2) return 0; if($str1 > $str2) return 1; if($str1 < $str2) return -1; } } //ファイルアップ関数 function upload_ifile($i_kname,$fname,$width,$height) { global $CONFIG,$FORM; //アップチェック if(empty($_FILES[$i_kname][name])) return array("","",0,0); if(phpversion() >= "4.2.0"){ //画像サイズエラー if($_FILES[$i_kname][error] == 2 || $_FILES[$i_kname][error] == 1) return array(-3,"",0,0); //アップロードエラー if($_FILES[$i_kname][error] == 3 || $_FILES[$i_kname][error] == 4) return array(-2,"",0,0); } if(!file_exists($_FILES[$i_kname][tmp_name])) return array(-2,"",0,0); //ファイル形式を認識 $Flg = 0; if(preg_match('/image\/gif/i',$_FILES[$i_kname][type])){ $type = ".gif"; $Flg=1; } elseif(preg_match('/image\/jpeg/i',$_FILES[$i_kname][type])){ $type = ".jpg"; $Flg=1; } elseif(preg_match('/image\/(x-)?png/i',$_FILES[$i_kname][type])){ $type = ".png"; $Flg=1; } if (!$Flg) { if(preg_match('/\.gif$/i',$_FILES[$i_kname][name])){ $type = ".gif"; $Flg=1; } elseif(preg_match('/\.jpe?g$/i',$_FILES[$i_kname][name])){ $type = ".jpg"; $Flg=1; } elseif(preg_match('/\.png$/i',$_FILES[$i_kname][name])){ $type = ".png"; $Flg=1; } } //対応以外の形式の場合 if (!$Flg) return array(-1,"",0,0); //サイズ取得 $Image_Info = getimagesize($_FILES[$i_kname][tmp_name]); //サイズが取得できなかった場合 if ($Image_Info[0] == 0 || $Image_Info[1] == 0) return array(-1,"",0,0); //画像サイズチェック if ($Image_Info[0] > $width || $Image_Info[1] > $height) return array(-3,"",0,0); //画像ファイル名の生成 $Img_File = "$fname$type"; if (!move_uploaded_file($_FILES[$i_kname][tmp_name],$Img_File)) return array(-2,"",0,0); if (!is_file($Img_File)) return array(-2,"",0,0); //前画像ファイル削除処理 $del_f1 = $del_f2 = "$fname"; switch($type) { case '.jpg': $del_f1 .= ".gif"; $del_f2 .= ".png"; break; case '.gif': $del_f1 .= ".jpg"; $del_f2 .= ".png"; break; case '.png': $del_f1 .= ".gif"; $del_f2 .= ".jpg"; break; } if(file_exists($del_f1)) unlink($del_f1); if(file_exists($del_f2)) unlink($del_f2); return array($type,$fname,$Image_Info[0],$Image_Info[1]); } ?>