CNN = mysql_connect(HOST,USER,PASS); //MySQLに接続 mysql_set_charset('utf8'); if(!$this->CNN) { print"ホストに接続失敗"; exit; } if(!mysql_select_db(DB)) //データベースに接続 { print"データベースに接続失敗"; exit; } //クエリミス時メールは送らない設定 送る場合はtrue $this->errsendquerys=false; //セッション開始 $this->SESSION(); //端末チェック $this->TERMINAL_CHK(); //メニューデータ $this->menu_data=array("innerpage"=>"内部ページ","outerpage"=>"外部ページ","htmlpage"=>"バナー等のHTML入力"); //インサートデータ これはあくまでメニューデータ用・・・実際にファイルを作るのはログインで。 $this->insert=array("index"=>"トップページ","notice"=>"お知らせ","access"=>"アクセス","inquiry"=>"お問合せ","photo"=>"フォトギャラリー"); } //セッション開始 function SESSION() { //session有効期限解除 //これあるとブラウザバックが出来ないな・・・でもこいつがあるとキャッシュされてしまうみたいだ。 //session_cache_limiter("private_no_expire"); //セッション保存場所指定 session_save_path(SAVE_SESSION_SPACE); //セッション時間 session_set_cookie_params(0); //セッションネーム指定 session_name(SNAME); //セッションスタート session_start(); } //MYSQL接続 function SQL($sql,$type="") { if(!mysql_query("begin")){print"トランザクション開始失敗";exit;} //ロック開始 $RESULT = mysql_query($sql);//SQLコマンド実行・判定 ※select以外はここで処理が終わっている。 if(!mysql_query("commit")){print"トランザクション終了失敗";exit;} //ロック終了 if(!$RESULT)//SQL失敗時 { //メールで送りたい場合は上sendqueryをtrueへ if($this->errsendquerys){ mb_language("Ja"); mb_internal_encoding("EUC-JP"); $send=$sql."\n".$_SERVER['PHP_SELF']; if($_SERVER['QUERY_STRING']){$send.="?".$_SERVER['QUERY_STRING'];} mb_send_mail("uchima@remar.co.jp",$_SERVER['SERVER_NAME']." query",$send,"from:".ADMIN_MAIL); exit; }else{ die($msg." query ".$sql); } } //■■■■■■■■■■■■■■■■ここからselect実行処理■■■■■■■■■■■■■■■■// elseif($RESULT && ereg("^select|^show",$sql)) //$RESULTがTrueで、$SQLに"select"が入ってる場合。 { $NUM = 0; //変数の初期化 while ($DATA = mysql_fetch_array($RESULT,MYSQL_ASSOC)) //TBLデータの格納 { if(count($DATA)) { foreach($DATA as $key=>$value) {$DATA[$key]=$value;} } $ARRA[$NUM] = $DATA; $NUM++; }//$ARRA[$NUM]に列毎格納 if(ereg("^select count\(\*\)",$sql)) { $ARRA = $ARRA[0]['count(*)']; //列数の格納 } //最初の1個しか取得したくない場合 if($type=="1"){ $dt=$ARRA[0]; $ARRA=$dt; } return $ARRA; //selectの場合必ず返値があるので。 } } //MYSQL接続 ID取得用 function SQL_STR($SQL,$set_key=",",$set_key2=".") { if(!mysql_query("begin")){print"トランザクション開始失敗";exit;} //ロック開始 $RESULT = mysql_query($SQL);//SQLコマンド実行・判定 ※select以外はここで処理が終わっている。 if(!mysql_query("commit")){print"トランザクション終了失敗";exit;} //ロック終了 if(!$RESULT) //SQL失敗時 { //メールで送りたい場合は上sendqueryをtrueへ if($this->errsendquerys){ mb_language("Ja"); mb_internal_encoding("EUC-JP"); $send=$sql."\n".$_SERVER['PHP_SELF']; if($_SERVER['QUERY_STRING']){$send.="?".$_SERVER['QUERY_STRING'];} mb_send_mail("uchima@remar.co.jp",$_SERVER['SERVER_NAME']." query",$send,"from:".ADMIN_MAIL); exit; }else{ die($msg." query ".$sql); } } //■■■■■■■■■■■■■■■■ここからselect実行処理■■■■■■■■■■■■■■■■// elseif($RESULT && ereg("^select",$SQL)) //$RESULTがTrueで、$SQLに"select"が入ってる場合。 { $NUM = 0; //変数の初期化 while ($DATA = mysql_fetch_array($RESULT,MYSQL_ASSOC)) //TBLデータの格納 { if(count($DATA)) { $strs[]=implode($set_key,$DATA); } $ARRA[$NUM] = $DATA; $NUM++; }//$ARRA[$NUM]に列毎格納 if(count($strs)){ $ARRA=implode($set_key2,$strs); } return $ARRA; //selectの場合必ず返値があるので。 } } //アップデートSQL文を作成(keyをフィールド名にすることが条件) function MAKE_UP_SQL($NAME,$DATA,$CNG_KEY,$limit="")//(KEY必須) { //dataがそろっているかチェック if(!$NAME || !is_array($DATA) || !$CNG_KEY){print "
アップデートデータが足りません。
";return;} $SQL="update ".$NAME." set "; //$CNN = mysql_connect($this->HOST,$this->USER,$this->PATH); //MySQLに接続 foreach($DATA as $key=>$value) { $chk=strtoupper($value); if($chk=="NULL") { $UPDATA[]=$key."=NULL"; }else { $UPDATA[]=$key."='".$this->quote($value)."'"; } } $UPS=implode(",",$UPDATA); $SQL.=$UPS." where ".$CNG_KEY."='".$DATA[$CNG_KEY]."'"; if($limit){$SQL.=" limit ".$limit;} return $SQL; } //アップデートSQL文を作成(keyをフィールド名にすることが条件) function MAKE_UP_SQL2($NAME,$DATA,$CNG_KEY,$limit="")//(KEY必須) { //dataがそろっているかチェック if(!$NAME || !is_array($DATA) || !is_array($CNG_KEY)){print "
アップデートデータが足りません。
";return;} $SQL="update ".$NAME." set "; //$CNN = mysql_connect($this->HOST,$this->USER,$this->PATH); //MySQLに接続 foreach($DATA as $key=>$value) { $chk=strtoupper($value); if($chk=="NULL") { $UPDATA[]=$key."=NULL"; }else { $UPDATA[]=$key."='".$this->quote($value)."'"; } } $UPS=implode(",",$UPDATA); $SQL.=$UPS." where "; foreach($CNG_KEY as $key=>$value){ $CHK_KEY[]=$value."='".$DATA[$value]."'"; } $CHK_KEYS=implode(" and ",$CHK_KEY); $SQL.=$CHK_KEYS; if($limit){$SQL.=" limit ".$limit;} return $SQL; } //インサートSQL作成(keyをフィールド名にすることが条件) function MAKE_INS_SQL($NAME,$DATA) { //dataがそろっているかチェック if(!$NAME || !is_array($DATA)){print "
インサートデータが足りません。
";return;} //$CNN = mysql_connect($this->HOST,$this->USER,$this->PATH); //MySQLに接続 foreach($DATA as $key=>$value) { $KEYS[]=$key; $chk=strtoupper($value); if($chk=="NULL") { $DATA[]=$key."=NULL"; }else { $DATAS[]="'".$this->quote($value)."'"; } } $KEYSS=implode(",",$KEYS); $DATASS=implode(",",$DATAS); $SQL="insert into ".$NAME."(".$KEYSS.")values(".$DATASS.");"; return $SQL; } //インサートSQL作成(keyをフィールド名にすることが条件) function MAKE_INS_SQL_SET($NAME,$DATA,$MODE="NOT NULL") { //dataがそろっているかチェック if(!$NAME || !is_array($DATA)){print "
インサートデータが足りません。
";return;} //$CNN = mysql_connect($this->HOST,$this->USER,$this->PATH); //MySQLに接続 foreach($DATA[0] as $key=>$value) { $KEYS[]=$key; } $KEYSS=implode(",",$KEYS); $SQL="insert into ".$NAME."(".$KEYSS.")values "; //データを補正 foreach($DATA as $key=>$value){ foreach($value as $k=>$v){ if($MODE=="NULL"){ if($v!=""){ $DATAS[$key][$k]="'".$this->quote($v)."'"; }else{ $DATAS[$key][$k]="NULL"; } }else{ $DATAS[$key][$k]="'".$this->quote($v)."'"; } } } //一つ一つを文に foreach($DATAS as $key=>$value){ $SQLSS[]="(".implode(",",$value).")"; } $SQL.=implode(",",$SQLSS).";"; return $SQL; } //データのXSSとインジェクション対策 function quote($str){ $str=mysql_real_escape_string(htmlspecialchars($str,ENT_QUOTES,ENCODE)); return $str; } //\r\nを戻す・・・ function rncng($str){ return $str; //return htmlspecialchars($str,ENT_QUOTES,ENCODE); } //CSVをちゃんと登録できるように変更 function CSV_DATA_CNG($PARAM,$SPACE=""){ if($SPACE){$PARAM=" ".$PARAM;}//住所変換がちゃんと行くように最初に空白入れる $PARAM=ereg_replace(",",",",$PARAM); $PARAM=$this->NG_DATA_CNG($PARAM); return $PARAM; } //データベースの文字数取得 function DB_CNT_CHK($DB_TABLE) { if(!trim($DB_TABLE)){return;} $SQL="show fields from ".$DB_TABLE; $CHK_DATA=$this->SQL($SQL); if(count($CHK_DATA)) { foreach($CHK_DATA as $key=>$value) { $TMP=""; if(ereg("[0-9]{1}",$value['Type'])) { list($types,$num_tmp)=split("\(",$value['Type']); list($num,$num_end)=split("\)",$num_tmp); $CHK[$value['Field']]=$num; } } } return $CHK; } //パスワード作成 function MAKE_PASSWORD($keta=8){ mt_srand(microtime()*100000); $ps=md5(uniqid(mt_rand(),1)); $ps=substr($ps,0,$keta); $mbs=""; for($cnt=0;$cntquote(htmlentities($str,ENT_QUOTES,ENCODE)); return $str; } //タグ内の改行を消すのと,'を"に変更する function CNG_TAG($STR) { //タグの終わりを調べる if(ereg(">",$STR)) { $STRS=split(">",$STR); } //もしタグがあれば if(count($STRS)) { foreach($STRS as $key=>$value) { //タグの始まりを調べる if(ereg("<",$value)) { list($str_mae,$cng)=split("<",$value); $cng=ereg_replace("\r\n|\r|\n","",$cng); $cng=ereg_replace("'","\"",$cng); $STRS[$key]=$str_mae."<".$cng; } } $STR=implode(">",$STRS); } return $STR; } //画像のサイズを置き換え $filename,$new_filenameはパス込みのファイルネーム function RESIZE_IMG($X,$Y,$filename,$new_filename=""){ //エラーチェック if(!$X or !$Y){return false;} //新しいファイル名がなければ、今の画像を小さくする if(!$new_filename){$new_filename=$filename;} //画像サイズ入手 新規画像の時は必ず新しいのを作る $size=getImageSize($filename); if($X>$size[0]){ $X=$size[0]; } $command="/usr/bin/convert -geometry ".$X."x"; if($this->IS_STR($Y) and $this->IS_NUM($Y)){$command.=$Y;} $command.=" \"{$filename}\" ".$new_filename; exec($command); //縦画像の時・・・今はいらんか //exec("/usr/bin/convert -geometry ".$X."x \"{$filename}\" \" $new_filename"); } //画像のサイズを置き換え $filename,$new_filenameはパス込みのファイルネーム function RESIZE_IMG_LOLI($X,$Y,$filename,$new_filename=""){ //エラーチェック if(!$X or !$Y){return false;} //新しいファイル名がなければ、今の画像を小さくする if(!$new_filename){$new_filename=$filename;} //画像サイズ入手 新規画像の時は必ず新しいのを作る $size=getImageSize($filename); if($X>$size[0]){ $X=$size[0]; } $command="/usr/bin -geometry ".$X."x"; if($this->IS_STR($Y) and $this->IS_NUM($Y)){$command.=$Y;} $command.=" \"{$filename}\" ".$new_filename; print $command; exec($command); //縦画像の時・・・今はいらんか //exec("/usr/bin/convert -geometry ".$X."x \"{$filename}\" \" $new_filename"); } //中心とり function CROP_IMG($px="200",$filename,$new_filename=""){ //新しいファイル名がなければ、今の画像を小さくする if(!$new_filename){$new_filename=$filename;} //画像サイズ入手 新規画像の時は必ず新しいのを作る $size=getImageSize($filename); $command="/usr/bin/convert -gravity center -crop ".$px."x".$px."+0+0"; $command.=" \"{$filename}\" ".$new_filename; exec($command); } //画像のサイズを置き換え $filename,$new_filenameはパス込みのファイルネーム function CNG_IMGSIZE($X,$Y,$filename,$new_filename=""){ //エラーチェック if(!$X or !$Y){return false;} //新しいファイル名がなければ、今の画像を小さくする if(!$new_filename){$new_filename=$filename;} //小さい画像作成 $size=getImageSize($filename); //画像作成 $type=$size[2]; //list(,,$type,)=getimagesize($filename); switch($type){ case 1: $ext = 'gif'; //もしgifだった場合 $img_in=imagecreatefromgif($filename); break; case 2: $ext = 'jpg'; //JPEG画像の作成 $img_in=ImageCreateFromJPEG($filename); break; case 3: $ext = 'png'; $img_in=imagecreatefrompng($filename); break; } //新規空画像作成 //$img_out=ImageCreate($X,$Y); //GD2.01以上の場合はこれ使うと綺麗っぽ $img_out=ImageCreateTruecolor($X,$Y); //透過設定 imagealphablending($img_out,false); imageSaveAlpha($img_out,true); $fillcolor = imagecolorallocatealpha($img_out, 0, 0, 0, 127); imagecolortransparent($img_out,$fillcolor); //imagefill($img_out, 0, 0, $fillcolor); //リサイズ ImageCopyResampled($img_out,$img_in,0,0,0,0,$X,$Y,$size[0],$size[1]); //リサイズの画像を保存 //署名 #$black = imagecolorallocate($img_out, 0, 0, 0); //ImageTTFText ($img_out, 15, 0, 5, 20, $black,"HGRSGU.TTC","QNAVI"); //ImageTTFText ($img_out, 15, 0, 5, $Y-10, $black,"HGRSGU.TTC","QNAVI 2011"); //ファイル名指定 switch($ext){ case "png":ImagePNG($img_out,$new_filename);break; case "gif":ImageGIF($img_out,$new_filename,90);break; default:ImageJPEG($img_out,$new_filename,90);break; } ImageDestroy($img_in); return true; } function DIR_COPY($srcdir, $dstdir, $verbose = false){ $num = 0; if(!is_dir($dstdir)) mkdir($dstdir); if($curdir = opendir($srcdir)) { while($file = readdir($curdir)) { if($file != '.' && $file != '..') { $srcfile = $srcdir . '/' . $file; $dstfile = $dstdir . '/' . $file; if(is_file($srcfile)) { // if(is_file($dstfile)) $ow = filemtime($srcfile) - filemtime($dstfile); else $ow = 1; // if($ow > 0) { if($verbose) echo "Copying '$srcfile' to '$dstfile'..."; if(copy($srcfile, $dstfile)) { touch($dstfile, filemtime($srcfile)); $num++; if($verbose) echo "OK\n"; } else echo "Error: File '$srcfile' could not be copied!\n"; } //} else if(is_dir($srcfile)) { $num += $this->DIR_COPY($srcfile, $dstfile, $verbose); } } } closedir($curdir); } return $num; } function DIR_DELETE($ddir, $verbose = false){ $num = 0; //if(!is_dir($dstdir)) mkdir($dstdir); if($curdir = opendir($ddir)) { while($file = readdir($curdir)) { if($file != '.' && $file != '..') { $dfile = $ddir . '/' . $file; //$dstfile = $dstdir . '/' . $file; if(is_file($dfile)) { if($verbose) echo "delete '$srcfile' ..."; if(unlink($dfile)) { $num++; if($verbose) echo "OK\n"; } else echo "Error: File '$srcfile' could not be deleted!\n"; } else if(is_dir($dfile)) { $num += $this->DIR_DELETE($dfile, $verbose); } } } closedir($curdir); } return $num; } //テキストチェッカー function TXT_CHK($str) { $PARAM=ereg_replace("'","’",$PARAM); //『'』を全角に置き換える。 $PARAM=ereg_replace(",",",",$PARAM); //『,』を全角に置き換える。 } //テキストカット function TXT_CUT($str,$size=30,$chk='on') { if($chk=='on'){$str=mb_convert_kana($this->OK_DATA_CNG($str),"ASKV",ENCODE);} if((strlen($str)/2)>$size) { $str=mb_substr($str,0,$size,ENCODE)."…"; } return $str; } //文字列をSQL登録できるよう変更 function OK_DATA_CNG($PARAM) { $PARAM=ereg_replace("
","\n",$PARAM); //改行を
に置き換える。 // $PARAM=stripslashes($PARAM); return $PARAM; } //文字列をSQL登録できるよう変更 function NG_DATA_CNG($PARAM,$HTML="ent") { //タグがあれば分ける $PARAM=ereg_replace("\r\n|\r|\n","
",$PARAM); //改行を
に置き換える。 $PARAM=stripslashes($PARAM); if($HTML=="ent"){$PARAM=htmlentities($PARAM,ENT_QUOTES,ENCODE);} $PARAM=ereg_replace(htmlentities("
",ENT_QUOTES,ENCODE),"
",$PARAM); //$PARAM=htmlentities($PARAM); return $PARAM; } //メールアドレスチェッカー function IS_MAIL($str) { if(!trim($str)){return FALSE;} if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$str)) {return TRUE;} else {return FALSE;} } //IE6調べ function IE6_CHK(){ $ua = $_SERVER['HTTP_USER_AGENT']; if (ereg("MSIE 6",$ua)) { return true; }else{ return false; } } //テキスト調べ function IS_STR($str) { if(trim(mb_convert_kana($str,"s",ENCODE))==""){return FALSE;} else{return TRUE;} } //日付調べ1 ただスラッシュ分けで確認するならこちら function IS_DATE($date){ //dateが日付パターン(//)かチェック if(!ereg("^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})$",$date)){return false;} list($year,$month,$day)=split("/",$date); return checkdate($month,$day,$year); } //日付調べ2 strtotimeの特性上 2/23であれば今年の2/23扱いで日付になります。 function IS_DATE2($date){ //日付を変換 日付でなければfalse $chks=strtotime($date); if($chks=="-1"){return false;}else{return true;} } //メールアドレススパム止め function CNG_MAIL($str) { $str=ereg_replace("@","@",$str); return $str; } //半角アルファベットチェッカー(全て半角英字か調べる) function IS_ALPHA($str) { if(!trim($str)){return FALSE;} if (preg_match("/^[a-zA-Z]+$/",$str)) {return TRUE;} else {return FALSE;} } //半角数字チェッカー(全て半角数字か調べる) function IS_NUM($str) { if(!trim($str)){return FALSE;} if (preg_match("/^[0-9\.]+$/",$str)) {return TRUE;} else {return FALSE;} } //半角記号英数字チェッカー(全て半角記号英数字か調べる) function IS_ALNUM($str) { if(!trim($str)){return FALSE;} if (preg_match("/^[a-zA-Z0-9!-\/]+$/",$str)) {return TRUE;} else {return FALSE;} } //日本語チェッカー(日本語か調べる) function IS_KANA($str) { if(!trim($str)){return FALSE;} if (preg_match("/[ぁ-んァ-ヶ亜-瑤]{5}/", $str)) {return TRUE;} else {return FALSE;} } //数字チェック(-)は強制で抜く function NUM_CHK($STR) { if(!trim($str)){return FALSE;} $STR=ereg_replace("-","",$STR); if(preg_match("/^[0-9]+$/",$STR)) {return TRUE;} else {return FALSE;} } //URLがあるか function IS_URL($URL) { if(!trim($str)){return FALSE;} if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $URL)) { return TRUE; }else { return FALSE; } } //画像のサイズ補正 function SIZE_HOSEI($URL,$CNG_X=BASE_X,$CNG_Y=BASE_Y) { //規定サイズ取得 if(!file_exists($URL)){return false;} list($x,$y)=getimagesize($URL); if($x<$CNG_X and $y<$CNG_Y){ $SIZE['RX']=$SIZE['X']=$x;$SIZE['RY']=$SIZE['Y']=$y; return $SIZE; } $SIZE['RX']=$x; $SIZE['RY']=$y; $cnt=0; $chk=true; $wari=intval(($CNG_X/$x)*100)/100; while($chk) { $x=intval($x*$wari); $y=intval($y*$wari); if($x<=$CNG_X and $y<=$CNG_Y) { $chk=false; }else { $CNG_X=$x; $wari=0.9; } } $SIZE['X']=$x; $SIZE['Y']=$y; return $SIZE; } //自動リンク function URL_HREF($str) { $str = preg_replace( "/(https?|ftp)(:\/\/)([^[:blank:]\/\?\+\$\;%,!#~*:@&=_][[:alnum:]-\.]+)([[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/", "\\1\\2\\3\\4", $str); return $str; } //IPチェック function IP_VIEW() { if($_GET['IP_VIEW']=="false"){return false;} //IPチェック用 $ADMIN_IP[]="180.43.94.216"; $ADMIN_IP[]="218.40.171.51"; $ADMIN_IP[]="210.230.247.158"; $ADMIN_IP[]="203.160.28.180"; foreach($ADMIN_IP as $key=>$value) { if($_SERVER['REMOTE_ADDR']==$value) { return true; } } return false; } //カレンダー配列取得 function CALENDER($day="") { //日付取得 if(!$day){$day=mktime();} //$dayの年を取得 $THIS_YEAR=date("Y",$day); //$dayの月を取得 $THIS_MONTH=date("m",$day); //$dayの日を取得 $THIS_DAY=date("d",$day); //$dayの月が何日まであるのか取得 $THIS_MONTH_DAYS=date("d",mktime(0,0,0,$THIS_MONTH+1,0,$THIS_YEAR)); //$dayの月1日目が何曜日なのか取得 $WEEK_CNT=date("w",mktime(0,0,0,$THIS_MONTH,1,$THIS_YEAR)); //カレンダー用配列作成(初期は全部0) $cal_cnt=1;//その月の日付足してく用 for($cnt=0;$cnt<=5;$cnt++) { $week['CAL'][$cnt]=array("0","0","0","0","0","0","0"); } foreach($week['CAL'] as $key=>$value) { foreach($value as $key2=>$value2) { if($WEEK_CNT>$key2 && $key==0){continue;}//初日の曜日までは入力しない。 if($cal_cnt<=$THIS_MONTH_DAYS) { $week['CAL'][$key][$key2]=mktime(0,0,0,$THIS_MONTH,$cal_cnt,$THIS_YEAR); $cal_cnt++; } } //配列に数字が入っていなければその配列は削除 if(array_sum($week['CAL'][$key])==0){unset($week['CAL'][$key]);} } $week['THIS_MONTH']=mktime(0,0,0,$THIS_MONTH,1,$THIS_YEAR); $week['PRE_MONTH']=mktime(0,0,0,$THIS_MONTH-1,1,$THIS_YEAR); $week['NEXT_MONTH']=mktime(0,0,0,$THIS_MONTH+1,1,$THIS_YEAR); $week['NOW']=mktime(0,0,0,date('m'),date('d'),date('Y')); $week['WEEK']=array("sun"=>"日","1"=>"月","2"=>"火","3"=>"水","4"=>"木","5"=>"金","sat"=>"土"); return $week; } //次へ・前へ function PRE_NEXT_CNT($max,$CNT,$SET_CNT=0){ if($SET_CNT==0 or $SET_CNT==''){ $SET_CNT=CNT; } if($max<=0){return;} if(!$this->IS_NUM($max)){return;} //現在のカウントから前5個 if($CNT>0) { $pcnt=0; for($cnts=($CNT-$SET_CNT);$cnts>=0;$cnts-=$SET_CNT) { $preset[]=$cnts; $pcnt++; if($pcnt>=5){break;} } if(is_array($preset)) { sort($preset); } } //現在のカウントから後5個 if($CNT<$max) { $ecnt=0; for($cnts=($CNT+$SET_CNT);$cnts<$max;$cnts+=$SET_CNT) { $endset[]=$cnts; $ecnt++; if($ecnt>=5){break;} } if(is_array($endset)) { sort($endset); } } //最後 $amari=(($max+$SET_CNT)%$SET_CNT); $C['START']=0; $C['PRE']=$preset; $C['NOW']=$CNT; $C['NEXT']=$endset; $C['SET_CNT']=$SET_CNT; $last=$max-$amari; if($amari) { $C['LAST']=$last; }else{$C['LAST']=$max-$SET_CNT;} return $C; } //次へ・前へ function VIEW_PRE_NEXT($c,$path="?",$jmp=""){ if(!$path){$path="?";} if(!is_array($c)){return;} //print "最初\n"; $pre=$c['NOW']-$c['SET_CNT']; if($pre>=0){ print "<<\n"; } if(count($c['PRE'])){ foreach($c['PRE'] as $key=>$value) { print "".(($value/$c['SET_CNT'])+1)."\n"; } } print "".($c['NOW']/$c['SET_CNT']+1)."\n"; if(count($c['NEXT'])){ foreach($c['NEXT'] as $key=>$value) { print "".(($value/$c['SET_CNT'])+1)."\n"; } } $next=$c['NOW']+$c['SET_CNT']; if($next <= $c['LAST']) { print ">>\n"; } //print "最後\n"; } //テキストを配列キーに合わせて置き換えする function CNG_TMPL($TEXT="",$DATA="") { $msg=$TEXT; if(!$TEXT or !count($DATA)) { return false; } foreach($DATA as $key=>$value) { $msg=ereg_replace("{".$key."}",$value,$msg); } return $msg; } //年号置換 function CNG_NENGOU($nen="") { $HY="1989"; $SY="1926"; $nengou=""; if(!$nen){$nen=date("Y");} //計算 //平成 if($HY<=$nen){ $chk=$nen-$HY; $nengou="平成"; }//昭和 else{ $chk=$nen-$SY; $nengou="昭和"; } if($chk=="0"){$nengou.="元年";} else{$nengou.=($chk+1)."年";} return $nengou; } //CSV作成 function MAKE_CSV($name,$body){ //出力JIS ini_set("mbstring.http_output","SHIFT-JIS"); header('Pragma: private'); header('Cache-Control: private'); header("Content-Type: application/vnd.ms-excel"); $name=mb_convert_encoding($name,"SHIFT-JIS",ENCODE); header("Content-Disposition: attachment; filename=".$name); print mb_convert_encoding($body,"SHIFT-JIS",ENCODE); exit; } //ファイルの書き込み・読み込み function SET_FILE($fpath,$url){ $fp=fopen($fpath,"w"); chmod($fpath,604); //データ入れ込み $data=file($url); foreach($data as $key=>$value){ fputs($fp,$value); } fclose($fp); } //ファイルの書き込み データは直入れ function MAKE_FILE($fpath,$data){ $fp=fopen($fpath,"w"); chmod($fpath,0604); //データ入れ込み if(count($data)){ foreach($data as $key=>$value){ fputs($fp,$value); } } fclose($fp); } //RSSファイルの書き込み・読み込み function SET_RSS($fpath,$url){ $fp=fopen($fpath,"w"); chmod($fpath,0604); //データ入れ込み $data=file($url); $switch=false; foreach($data as $key=>$value){ if(ereg("^",$value)){$switch=false;$value.="\n";} fputs($fp,$value); } } fclose($fp); } //RSS1.0読み込み function READ_RSS1_0($data){ if(!count($data)){return false;} foreach($data as $key=>$value){ //指定タグを\t化 $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); $value=str_replace("","\t",$value); //指定タグを\消しこみ $value=str_replace("","",$value); $value=str_replace("<link>","",$value); $value=str_replace("<description>","",$value); $value=str_replace("<content:encoded>","",$value); $value=str_replace("<dc:subject>","",$value); $value=str_replace("<dc:creator>","",$value); $value=str_replace("<dc:date>","",$value); $value=ereg_replace(" ","",$value); $line[$key]=split("\t",$value); // $line[$key]['title']=ereg_replace("(.+)<title>(.+)<\/title>(.+)","\\2",$value); // $line[$key]['link']=ereg_replace("(.+)<link>(.+)<\/link>(.+)","\\2",$value); // $line[$key]['description']=ereg_replace("(.+)<description>(.+)<\/description>(.+)","\\2",$value); // $line[$key]['date']=ereg_replace("(.+)<dc\:date>(.+)<\/dc\:date>(.+)","\\2",$value); } return $line; } function FILE_BUILD($URL,$CFILE,$pid){ $toDIR = "../"; //生成先 $DIR = $toDIR."group/"; //生成先Dir;./group/ //各ファイル生成 // print $URL; // exit; //各ファイル生成 $files=file($URL); //絶対Pathからhtmlタグを読み込む。配列格納。 $fp=fopen($DIR.$CFILE,"w"); //XXXXXXXX書き込む前にファイルをロック flock($fp,LOCK_EX); foreach($files as $key=>$value) { fwrite($fp,$value); } //XXXXXXXX書き込んだ後にロック解除 flock($fp,LOCK_UN); fclose($fp); $ret = @chmod($DIR.$CFILE, 0777); //パーミッション変更 $ret = @chown($DIR.$CFILE,"remar"); //所有者変更 } //端末チェッカー function TERMINAL_CHK(){ $this->agent = $_SERVER['HTTP_USER_AGENT']; //クローラープラス if(eregi("DoCoMo|^DoCoMo.+Googlebot-Mobile",$this->agent)){$this->terminal="docomo";}//ドコモ elseif(eregi("UP.Browser|^.+KDDI\-Googlebot\-Mobile.+",$this->agent)){$this->terminal="au";}//アーウー elseif(eregi("Vodafone|VodafoneKKSearch",$this->agent)){$this->terminal="vodafone";}//ボーダ elseif(eregi("SoftBank|SoftBankMobileSearch|Y\!J\-SRD|Y\!J\-MBS",$this->agent)){$this->terminal="softbank";}//ソフトバンク elseif(eregi("J-PHONE",$this->agent)){$this->terminal="j-phone";}//J-PHONE elseif(eregi("WILLCOM",$this->agent)){$this->terminal="willcom";}//WILCOMはドコモ系と同じにしたい elseif(eregi("iphone",$this->agent)){$this->terminal="iphone";}//iフォン elseif(eregi("ipad",$this->agent)){$this->terminal="ipad";}//iパッド elseif(eregi("ipod",$this->agent)){$this->terminal="ipod";}//iポッド elseif(eregi("Android",$this->agent)){$this->terminal="Android";}//アンドロイド else{$this->terminal="PC";}//PC・・・っていうか携帯3機種+WILLCOM以外 return $this->terminal; } //端末に合わせたエンコード function ENCODE_AGENT($data){ switch($this->terminal){ //モバイルの場合 case "docomo": case "au": case "vodafone": case "softbank": case "j-phone": case "willcom": mb_convert_variables("SJIS","UTF-8",$data); return $data; break; } //何もなければそのままリターン return $data; } //置き換えファンクション function CNG_HTMLCODE($cngstr1="",$cngstr2="",$str=""){ //変換用データが無い場合 if(!$cngstr1 or !$cngstr2 or !$str){ return false; } $strs=str_replace($cngstr1,$cngstr2,$str); return $strs; } function EXT_TYPE_IMGS($ext){ if(ereg("xls|xles",$ext)){return URL."/img/xls.png";} if(ereg("docx|doc",$ext)){return URL."/img/word.png";} if(ereg("pdf",$ext)){return URL."/img/pdf.png";} if(ereg("swf",$ext)){return URL."/img/swf.png";} } function url_exists($url) { // Version 4.x supported $handle = curl_init($url); if (false === $handle) { return false; } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_FAILONERROR, true); // this works curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); $connectable = curl_exec($handle); curl_close($handle); return $connectable; } //携帯機種別のインプットスタイル決め function MOB_TEXT_TYPE($mode="",$add_style=""){ $kt=$this->terminal; //モード決め switch($mode){ case "1":$mode="漢";break; case "2":$mode="半角カナ";break; case "3":$mode="英";break; case "4":$mode="数";break; default:$mode="漢";break; } //機種別 switch($kt){ //ドコモ case "docomo": if($mode=="半角カナ"){$style=" style=\"-wap-input-format:"*<ja:hk>";".$add_style."\" ";} elseif($mode=="英"){$style=" style=\"-wap-input-format:"*<ja:en>";".$add_style."\" ";} elseif($mode=="数"){$style=" style=\"-wap-input-format:"*<ja:n>";".$add_style."\" ";} else{$style=" style=\"-wap-input-format:"*<ja:h>";".$add_style."\" ";} break; //AU case "au": //ソフトバンク case "softbank": case "j-phone": case "vodafone": if($mode=="半角カナ"){$style=" istyle='2' style='".$add_style."' ";} elseif($mode=="英"){$style=" istyle='3' style='".$add_style."' ";} elseif($mode=="数"){$style=" istyle='4' style='".$add_style."' ";} else{$style=" istyle='1' style='".$add_style."' ";} break; } return $style; } function PRE_NEXT($CNT,$LCNT="10",$MCNT){ print "<div id='prenext'>"; if($CNT>0){ $precnt=($LCNT-$CNT); if($precnt<0){$precnt=abs($precnt);} print "<a href='?cnt=".($precnt)."' id='prepage'>前へ</a> "; } print "全<b>".$MCNT."</b>件"; if(($LCNT+$CNT)<$MCNT){ print " <a href='?cnt=".($LCNT+$CNT)."' id='nextpage'>次へ</a>"; } print "</div>\n"; } } ?><br /> <b>Fatal error</b>: Uncaught Error: Class "COMMON" not found in /home/c2105622/public_html/old.okipachi-slot.com/index.php:8 Stack trace: #0 {main} thrown in <b>/home/c2105622/public_html/old.okipachi-slot.com/index.php</b> on line <b>8</b><br />