%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/rappan/www/cgi_bbs_puk/
Upload File :
Create Path :
Current File : /home/rappan/www/cgi_bbs_puk/common.pl

package common;

#***************************************************************************
# 概  要 : ルーチン集
# 使用環境 : Perl5
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.01 | 2006/03/06 | 天都 葉霧       | [css_background_attachment]追加
#       |            |                  | [css_background_repeat]追加
#       |            |                  | [css_background_position]追加
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************




#***************************************************************************
# 概  要 : css font-weight
# 引  数 : 0 : 0 = normal
#                1 = bold
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub css_font_weight
{
	if($_[0] == 1)	{ return('bold'); }
	else			{ return('normal'); }
}
#***************************************************************************
# 概  要 : css text-align
# 引  数 : 0 : 0 = center
#                1 = left
#                2 = right
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub css_text_align
{
	if($_[0] == 1)		{ return('left'); }
	elsif($_[0] == 2)	{ return('right'); }
	else				{ return('center'); }
}
#***************************************************************************
# 概  要 : css border-style
# 引  数 : 0 : 0 = none
#                1 = solid
#                2 = dotted
#                3 = double
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub css_border_style
{
	if($_[0] == 1)		{ return('solid'); }
	elsif($_[0] == 2)	{ return('dotted'); }
	elsif($_[0] == 3)	{ return('double'); }
	else				{ return('none'); }
}
#***************************************************************************
# 概  要 : css background-attachment
# 引  数 : 0 : 0 = scroll
#                1 = fixed
#
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/03/06 | 天都 葉霧       |
#***************************************************************************
sub css_background_attachment
{
	if($_[0] == 1)	{ return('fixed'); }
	else			{ return('scroll'); }
}
#***************************************************************************
# 概  要 : css background-repeat
# 引  数 : 0 : 0 = no-repeat
#                1 = repeat
#                2 = repeat-x
#                3 = repeat-y
#
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/03/06 | 天都 葉霧       |
#***************************************************************************
sub css_background_repeat
{
	if($_[0] == 1)		{ return('repeat'); }
	elsif($_[0] == 2)	{ return('repeat-x'); }
	elsif($_[0] == 3)	{ return('repeat-y'); }
	else				{ return('no-repeat'); }
}
#***************************************************************************
# 概  要 : css background-position
# 引  数 : 0 : 縦表示位置 0 = 上
#                           1 = 中央
#                           2 = 下
#            1 : 横表示位置 0 = 左
#                           1 = 中央
#                           2 = 下
#
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/03/06 | 天都 葉霧       |
#***************************************************************************
sub css_background_position
{
	if($_[0] == 1)		{ $height = '50%'; }
	elsif($_[0] == 2)	{ $height = '100%'; }
	else				{ $height = '0%'; }
	if($_[1] == 1)		{ $width = '50%'; }
	elsif($_[1] == 2)	{ $width = '100%'; }
	else				{ $width = '0%'; }
	return("$width $height");
}


#***************************************************************************
# 概  要 : 現在日時の取得
# 引  数 : 0 : 0 = 年無し
#                1 = 年有り
#            1 : 0 = 曜日無し
#                1 = 曜日有り
#            2 : 0 = 秒無し
#                1 = 秒有り
# 戻 り 値 : 現在日時
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub get_datetime
{
	@Now = localtime(time);
	$Now[5] += 1900;
	$Now[4] = sprintf("%02d",$Now[4]+1);
	$Now[3] = sprintf("%02d",$Now[3]);
	$Now[2] = sprintf("%02d",$Now[2]);
	$Now[1] = sprintf("%02d",$Now[1]);
	$Now[0] = sprintf("%02d",$Now[0]);
	$Now[6] = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$Now[6]];

	if($_[0] == 1) { $date = "$Now[5]/"; }
	$date .= "$Now[4]/$Now[3] ";
	if($_[1] == 1) { $date .= "( $Now[6] ) "; }
	$date .= "$Now[2]:$Now[1]";
	if($_[2] == 1) { $date .= ":$Now[0]"; }

	return($date);
}


#***************************************************************************
# 概  要 : URL自動リンク
# 引  数 : 0 : in  : 自動リンクを行う文字列
#                out : リンク化した文字列
#            1 : 0 = リンクを同じウインドウで開く
#                1 = リンクを新しいウインドウで開く
# 戻 り 値 :
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub auto_link
{
	if($_[1] == 1)	{ $_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g; }
	else			{ $_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\">$2<\/a>/g; }
}


#***************************************************************************
# 概  要 : cookieの取得
# 引  数 : 0 : cookie名
# 戻 り 値 : 値
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub get_cookie
{
	local(@DATA,@COOKIE,$key,$value,$line);

	@COOKIE = split(/; */,$ENV{'HTTP_COOKIE'});
	foreach $line(@COOKIE)
	{
		($key,$value) = split(/=/,$line);
		$value =~ s/ //g;
		$DUMMY{$key} = $value;
	}
	return($DUMMY{$_[0]});
}
#***************************************************************************
# 概  要 : cookieの設定
# 引  数 : 0 : cookie名
#            1 : 有効期限(日単位)
#            2 : データ(「,」区切り)
# 戻 り 値 : Set-Cookie
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub set_cookie
{
	@DATE = gmtime(time+$_[1]*86400);
	$DATE[5] += 1900;
	$DATE[3] = sprintf("%02d",$DATE[3]);
	$DATE[2] = sprintf("%02d",$DATE[2]);
	$DATE[1] = sprintf("%02d",$DATE[1]);
	$DATE[0] = sprintf("%02d",$DATE[0]);
	$w   = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$DATE[6]];
	$m   = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$DATE[4]];
	$gmt = "$w, $DATE[3]\-$m\-$DATE[5] $DATE[2]:$DATE[1]:$DATE[0] GMT";
	return("Set-Cookie: $_[0]=$_[2]; expires=$gmt\n");
}


#***************************************************************************
# 概  要 : ホスト名の取得
# 引  数 : 0 : IPアドレス
# 戻 り 値 : ホスト名
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub get_host
{
	$host = gethostbyaddr(pack('C4',split(/\./,$_[0])),2);
	if($host eq '')
	{
		$host = $_[0];
	}
	else
	{
		if($host =~ /\.(.+)\.(.+)\.(.+)$/)	{ $host = "\*\.$1\.$2\.$3"; }
		elsif($host =~ /\.(.+)\.(.+)$/)		{ $host = "\*\.$1\.$2"; }
		elsif($host =~ /\.(.+)$/)			{ $host = "\*\.$1"; }
	}
	return($host);
}


#***************************************************************************
# 概  要 : ファイルロック
# 引  数 : 0 : ロックファイル
# 戻 り 値 : 0 = ロック完了
#            1 = ロック中
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub file_lock
{
	# 古いロックは削除する
	if((-e $_[0]) || (-d $_[0]))
	{
		$retry = (stat($_[0]))[9];
		if($retry < time - 30) { &file_unlock($_[0]); }
	}

	$retry = 5;
	if(eval{symlink("","");}, $@ eq "")
	{
		# symlink関数
		while(!symlink(".",$_[0]))
		{
			if(--$retry <= 0) { return(1); }
			sleep(1);
		}
	}
	else
	{
		# mkdir関数
		while(!mkdir($_[0],755))
		{
			if(--$retry <= 0) { return(1); }
			sleep(1);
		}
	}
	return(0);
}
#***************************************************************************
# 概  要 : ファイルロックの解除
# 引  数 : 0 : ロックファイル
# 戻 り 値 :
# 備  考 :
#
#===========================================================================
# Ver. |    Date    |       Name       | Note
#-------+------------+------------------+-----------------------------------
# 1.00 | 2006/02/14 | 天都 葉霧       |
#***************************************************************************
sub file_unlock
{
	if(-e $_[0]) { unlink($_[0]); }
	if(-d $_[0]) { rmdir($_[0]); }
}

1;

Zerion Mini Shell 1.0