<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis">
<title>データの更新</title>
<LINK rel="stylesheet" href="hpbsite.css" type="text/css">
</head>
<BODY bgcolor="#004800" text="#ffffff">
<P>
<?php
/*
-----------------------------------------------
main
-----------------------------------------------
*/
$flag = 0 ;
$photo_sum = 0 ;//-- 写真の掲載枚数
$thumb_num = 0 ;//-- 作成されたサムネイル数
make_data($photo_sum , $flag) ;
if($flag == 1){
make_thumbnail($thumb_num) ;
//-------------------- 確認コメント表示 ---------------------
print "<CENTER>";
print "<BR><BR>";
print "<H4>最新のデータに更新しました</H4>";
print "<H4>掲載写真は " . $photo_sum . " 枚です</H4>";
//print "<BR>";
if($thumb_num > 0){
print $thumb_num . " 個のサムネイルを作成しました";
print "<BR>";
}
print "</CENTER>";
}else{
print "<CENTER>";
print "<BR><BR>";
print "<H4>最新のデータに更新されています</H4>" ;
//print "<BR>";
print "</CENTER>";
}
/*
-----------------------------------------------
data.js の確認と作成
-----------------------------------------------
*/
function make_data (&$photo_sum , &$flag) {
//-- 変数の初期化
$file_log = "../joyful.log" ;
$file_data = "data.js" ;
$file_temp = "temp.js" ;
$dummy_dat = "//-- " ;
//-- joyfu.log の1行目を読み込む
$f_log = fopen($file_log , "r") ;
$dat_log = $dummy_dat . fgets($f_log);
fclose($f_log);
//-- $file_temp を新規作成 $file_temp を $file_dataへリネームするため
$f_temp = fopen($file_temp , "w") ;
fwrite($f_temp , $dat_log);
fclose($f_temp);
//-- $file_data ファイルの有無のチェック $chack == 1 有り
$chack = file_exists($file_data);
if($chack == 0){
//-- $file_data がないので新規作成する
$f_js = fopen($file_data , "w") ;
fwrite($f_js , $dat_log);
fclose($f_js);
}else{
//-- $file_data の1行目を読み込む
$f_js = fopen($file_data , "r") ;
$dat_js = fgets($f_js);
fclose($f_js);
}
//-- 確認用
//print "Dat_log = " . $dat_log . "<br>" ;
//print "Dat__js = " . $dat_js . "<br>";
//-- ここで仮のファイル $file_temp を作成 後で $file_data にファイル名を変更する
if($dat_log != $dat_js){
//-- 各種文字列の設定
$q = '"' ;//-- ["]
$e = '",' ;//-- [",]
$n = "\n" ;//-- 改行
$s = "'" ;//-- [']
$m = "<>" ;//-- 配列区切りマーク
$fp = fopen($file_log , "r") ;//-- joyfulyy_diary のデータファイル
$fw = fopen($file_temp , "a") ;//-- 作成するデータファイル
//-- ファイルのロック
flock($fw,LOCK_EX);
//-- 先頭部分の書き込み
$head = $n . "var f_data = new Array(" . $n ;
fwrite($fw ,$head);
//-- joyful.logのデータ読み込み配列
$dat = array();
while (($line = fgets($fp)))
{
//-- 画像の含まれているデータのみを data.js に作成する
$jpg_pos = strpos($line , ".jpg"); //-- .jpg の位置を求める
if($jpg_pos > 0){
$dat = explode("<>" , $line) ;//-- 配列変数に取り込む
$no = $dat[0] ;//-- 番号
$date = substr($dat[2] , 0 , 10) ;//-- 年月日
$name = $dat[3] ;//-- 投稿者氏名
$title = $dat[5] ;//-- タイトル
$dd = $no . $m . $date . $m . $name . $m . $title ;//-- タイトルまでの配列データの作成
$jpg = "" ;
$p_num = 0 ;
$size = array();//-- 画像サイズの取り込み配列
for($ii=15 ; $ii<100 ; $ii = $ii + 3){
if($dat[$ii] == null){
break ;
}
$p_num++ ;
$f_name = $no . "_" . $p_num . $dat[$ii] ;
$j_pos = strpos($f_name , ".jpg"); //-- .jpg の位置を求める
if($j_pos > 0){
//-- 写真の縦横サイズを取得する
$ff = "../img/" . $f_name ;
$size = getimagesize($ff) ;//-- 画像データを配列に取り込む
$p_width = $size[0] ;//-- 写真の幅
$p_height = $size[1] ;//-- 写真の高さ
//-- データの作成
$jpg = $jpg . $m . $f_name . $m . $p_width . $m . $p_height ;
$photo_sum++ ; //-- 掲載写真の総数
}
}
$write_dat = $q . $dd . $jpg . $m . $e . $n ;
//-- データの書き込み
fwrite($fw ,"$write_dat");
//-- 確認用
//print $photo_sum . " --> " . $write_dat . "<br>" ;
}
}
//-- 最終データの書き込み
$d = $q . "<><><><><>" . $q . $n ;
fwrite($fw ,"$d");
$d = ")" . $n ;
fwrite($fw ,"$d");
//-- ファイルのロック解除
flock($fw,LOCK_UN);
//-- ファイルを閉じる
fclose($fp);
fclose($fw);
$flag = 1 ;
//-- $file_temp ファイルが作成されたら、data.js を一端削除し
//-- $file_data にファイル名を変更する
unlink($file_data);
rename($file_temp , $file_data);
}else{
$flag = 0 ;
unlink($file_temp); //-- 一時ファイルの削除
}
}
/*
-----------------------------------------------
サムネイルの確認と作成
参考としたページ http://noongoro.main.jp/note/note0052.html
-----------------------------------------------
*/
function make_thumbnail (&$thumb_num) {
set_time_limit(0);
$img_path = "../img/" ;//-- サムネイルを作る元画像のあるディレクトリ(必ず末尾は"/"で閉じる)
$thumbnail_path = "img_thumb/" ;//-- サムネイルを保存するディレクトリ
$thumbnail_h = 80 ;//-- サムネイルの高さ
//-- サムネイル・ディレクトリーの有無を確認
$dir_chack = is_dir($thumbnail_path);
if($dir_chack == 0){
mkdir($thumbnail_path);
}
$dir = opendir($img_path);
while(($img_name = readdir()) !== FALSE)
{
//-- ,jpg 画像のみを data.js に作成する
$jpg_pos = strpos($img_name , ".jpg"); //-- .jpg の位置を求める
if($jpg_pos > 0){
//-- サムネイルの有無のチェック 無ければ作成する chack == 1 有り
$thumbnail = $thumbnail_path . $img_name ;
$chack = file_exists($thumbnail);
//-- サムネイルの作成する
if($chack == 0){
$thumb_num++ ;
//-- 写真の縦横サイズを取得する。
$ff = $img_path . $img_name ;
$size = getimagesize($ff) ;//-- 画像データを配列に取り込む
$img_w = $size[0] ;//-- 写真の幅
$img_h = $size[1] ;//-- 写真の高さ
$img_r = $img_w / $img_h ;
// $thumbnail_w = 90; //サムネイルの横幅
// $thumbnail_h = 80; //サムネイルの縦幅
$thumbnail_w = $thumbnail_h * $img_r ;
create_thumbnail ( $img_name, $img_path, $thumbnail_path, $img_w, $img_h, $thumbnail_w, $thumbnail_h );
}
}
}
closedir($dir) ;
}
/*
-----------------------------------------------
サムネイル作成関数
-----------------------------------------------
*/
function create_thumbnail ( $img_name, $img_path, $thumbnail_path, $img_w, $img_h, $thumbnail_w, $thumbnail_h ) {
$src_img = @imagecreatefromjpeg ( $img_path.$img_name ); //サムネイル元 ※1
if ( $src_img ) {
//サムネイル作成 ※2
$dst_img = imagecreatetruecolor ( $thumbnail_w, $thumbnail_h );
$result = imagecopyresampled ( //$result = imagecopyresized (
$dst_img, //貼り付けするイメージID
$src_img, //コピーする元になるイメージID
0, //int dstX (貼り付けを開始するX座標)
0, //int dstY (貼り付けを開始するY座標)
0, //int srcX (コピーを開始するX座標)
0, //int srcY (コピーを開始するY座標)
$thumbnail_w, //int dstW (貼り付けする幅)
$thumbnail_h, //int dstH (貼り付けする高さ)
$img_w, //int srcW (コピーする幅)
$img_h //int srcH (コピーする高さ)
);
//サムネイルをJPEG形式で保存
imagejpeg ( $dst_img, $thumbnail_path.$img_name );
imagedestroy ( $dst_img ); //サムネイル用イメージIDの破棄 ※3
imagedestroy ( $src_img ); //サムネイル元イメージIDの破棄 ※4
//html_p ( "サムネイルが作成されました。" );
//echo "<img src=\"$thumbnail_path$img_name\">";
} else {
html_p ( "error:サムネイル元になる画像が読み込めませんでした。" );//error
exit ();
}
}
function html_p ( $str ) {
echo ( "<p>$str</>\n" );
}
?>
<SCRIPT lauguage="javascript">
<!--
//-- CLOSE
var cc =""
cc +="<CENTER>"
cc +="<A href='javascript:close()' onfocus='this.blur()'>"
cc +="<H4>閉じる</H4>"
cc +="</A>"
cc +="</CENTER>"
document.write(cc)
//-->
</SCRIPT>
</P>
</body>
</html>