페이지 이동 함수 v1.0
<?php // 경고창 후 백이동 function alertPage($msg,$step='-1'){ exit('<script language="javascript" type="text/javascript">alert("'.$msg.'");'.($step != null ? 'history.go('.$step.');':'').'</script>'); } // 경고창 후 창닫기 function closePopUp($msg=null) { exit('<script language="javascript" type="text/javascript">'.($msg != null ? 'alert("'.$msg.'");' : '').'top.close();</script>'); } // 경고창 후 페이지 이동 function movePage($url,$msg=null){ exit('<script language="javascript" type="text/javascript">'.($msg != null ? 'alert("'.$msg.'");' : '').'self.location.replace("'.$url.'");</script>'); } //경고창 후 페이지 Replace(history 않남게) function replacePage($url,$msg=null) { exit('<script language="javascript" type="text/javascript">'.($msg != null ? 'alert("'.$msg.'");' : '').'self.location.replace("'.$url.'");</script>'); } ?>
이미지에 글자넣기 (gd)
<?php
define('LEFT', 0x01);
define('CENTER', 0x02);
define('RIGHT', 0x04);
define('TOP', 0x08);
define('MIDDLE', 0x10);
define('BOTTOM', 0x20);
class Font
{
var $text = "http://aaa.com";
var $color = 0x000000;
var $size = 10;
var $angle = 0;
var $font;
}
function getPrintToImage($szFilePath, &$objFont, $nFontAlign = 0x12)
{
# 이미지 파일이 존재하는지 체크한다.
if (!file_exists($szFilePath))
{
return FALSE;
}
# 이미지 파일 정보를 구한다.(크기및 타입)
$arrImgInfo = GetImageSize($szFilePath);
# 해당 이미지 포멧이 지원되는지 체크한다.
switch ($arrImgInfo[2])
{
case 1:
# GIF
if (!(ImageTypes() & IMG_GIF))
{
return FALSE;
}
$szContentType = "image/gif";
break;
case 2:
# JPG
if (!(ImageTypes() & IMG_JPG))
{
return FALSE;
}
$szContentType = "image/jpeg";
break;
case 3:
# PNG
if (!(ImageTypes() & IMG_PNG))
{
return FALSE;
}
$szContentType = "image/png";
break;
default:
return FALSE;
}
header ("Content-type: ".$szContentType);
# 이미지 파일을 읽어 이미지를 생성한다.
$fp = fopen($szFilePath, "rb");
$szContent = fread($fp, filesize($szFilePath));
fclose($fp);
$nImage = ImageCreateFromString($szContent);
# 프린트할 글의 색상을 준비한다.
$nBlue = $objFont->color & 0xFF;
$nGreen = $objFont->color >> 0x08 & 0xFF;
$nRed = $objFont->color >> 0x10 & 0xFF;
$nFontColor = ImageColorAllocate($nImage, $nRed, $nGreen, $nBlue);
# 프린트할 글의 위치를 결정한다.
$arrTTFBBox = ImageTTFBBox($objFont->size, $objFont->angle, $objFont->font, $objFont->text);
$nMax = max($arrTTFBBox[0], $arrTTFBBox[2], $arrTTFBBox[4], $arrTTFBBox[6]);
$nMin = min($arrTTFBBox[0], $arrTTFBBox[2], $arrTTFBBox[4], $arrTTFBBox[6]);
if ($nFontAlign & LEFT)
{
$nX = $arrTTFBBox[0] - $nMin;
}
else if ($nFontAlign & CENTER)
{
$nX = ($arrImgInfo[0] - ($nMax + $nMin)) / 2 + $arrTTFBBox[0];
}
else
{
$nX = $arrImgInfo[0] - $nMax + $arrTTFBBox[0];
}
$nMax = max($arrTTFBBox[1], $arrTTFBBox[3], $arrTTFBBox[5], $arrTTFBBox[7]);
$nMin = min($arrTTFBBox[1], $arrTTFBBox[3], $arrTTFBBox[5], $arrTTFBBox[7]);
if ($nFontAlign & TOP)
{
$nY = $arrTTFBBox[1] - $nMin;
}
else if ($nFontAlign & MIDDLE)
{
$nY = ($arrImgInfo[1] - ($nMax + $nMin)) / 2 + $arrTTFBBox[1];
}
else
{
$nY = $arrImgInfo[1] - $nMax + $arrTTFBBox[1];
}
ImageTTFText($nImage, $objFont->size, $objFont->angle, $nX, $nY, $nFontColor, $objFont->font, $objFont->text);
switch ($arrImgInfo[2])
{
case 1:
# GIF
ImageGIF($nImage);
break;
case 2:
# JPG
ImageJPEG($nImage);
break;
case 3:
# PNG
ImagePNG($nImage);
break;
default:
return FALSE;
}
return TRUE;
}
# 사용예제
$objFont = new Font;
$objFont->text = "My Name is Hoya.. mung ^^;";
$objFont->size = 25;
$objFont->color = 0x000000;
$objFont->angle = 45;
$objFont->font = "./arial.ttf";
$szFilePath = "hoya_eat.jpg";
getPrintToImage($szFilePath, $objFont, LEFT | MIDDLE);
?>
혹시 않되면 header("Content-Type: image/gif"); 코드 넣어서
어떤 파일인지 알려줄것
프레임 사용시 F5 눌렀을때 인덱스로 않가게 하기
<?php // 프레임 고정 $LastModified = gmdate("D d M Y H:i:s", filemtime($HTTP_SERVER_VARS[SCRIPT_FILENAME])); header("Last-Modified: $LastModified GMT"); header("ETag: "$LastModified""); // 프레임 고정 끝 ?>
입력된 시간을 5분 단위로 끈어서 입력
하기때문에 따로따로 나눠서 계산을 하면 상당히 구문도 길어지고 복잡해지니까
타임스탬프로 계산하는게 좋을꺼 같구요.
제가 생각한 방법은 이렇습니다.
<?php $str = "2006/12/31/23/56"; $tmp = explode("/",$str); $min = ($tmp[4]%5>0)? 5 - ($tmp[4]%5) : 0 ; $time = mktime($tmp[3],$tmp[4]+$min,0,$tmp[1],$tmp[2],$tmp[0]); echo date("Y/m/d/H/i",$time); ?>
분의 값을 5 에서 5로 나눈 나머지 값을 빼주면 5의 배수값중에 몇분이 모자라는지 나오겠죠.
분의 값이 7 분일경우 결과값은 3이 되겠져. 5 -(7%5) = 3분
이 값을 타임스탬프로를 생성할때 더해주면 5로 딱 떨어지는 값이 나올꺼구요.
그후에 date() 함수로 입맛에 맞게 형식을 만들면 되겠네요