php date 함수 사용법

Posted by 비회원 프로그래밍/PHP : 2010.08.02 16:07


날짜 select 형태로 작업할때
$date=date("Y-m-d",time());
형태로 하게되면

2010-08-02 형태로 보여지게되서
월 선택시 08 월로 선택해야 하는 경우가 있는데

이럴때는

Y-n-j 로 하게되면
2010-8-2 로 되어
해당부분을 쉽게 잡을 수 있다.

ex)

      <select name="menu1">
       <?for($i=$now_datey;$i<=$now_datey+5;$i++){?>
       <option value="<?=$i?>" <?if($i==$now_datey){?>selected<?}?>><?=$i?></option>
       <?}?>
      </select>년&nbsp;
      <select name="menu2">
       <?for($i=1;$i<=12;$i++){?>
       <option value="<?=$i?>" <?if($i==$now_daten){?>selected<?}?>><?=$i?></option>
       <?}?>
      </select>월&nbsp;
      <select name="menu3">
       <?for($i=1;$i<=31;$i++){?>
       <option value="<?=$i?>" <?if($i==$now_datej){?>selected<?}?>><?=$i?></option>
       <?}?>
      </select>일




a : "am" 또는 "pm"
A : "AM" 또는 "PM"
d : 두자리로 표현되는 날짜, 즉 "01"~"31"
 D : 세글자로 표현되는 요일, 즉 "Fri"
F : 월을 긴 문장으로 나타냅니다. 즉 "January"
h : 시간을 12시간 단위로 나타냅니다. "01"~"12"
H : 시간을 24시간 단위로 나타냅니다.
g : 시간을 12시간 단위로 0 없이 나타냅니다. "1"~"12"
G : 시간을 24시간 단위로 0 없이 나타냅니다. "0"~"24"
i : 분을 나타냅니다. "00"~"59"
j : 날짜를 0 없이 나타냅니다. "1"~"31"
l : (L의 소문자)요일을 나타냅니다. "Friday"
L : 윤년인지의 여부를 나타냅니다. "0" 또는 "1"
m : 달을 나타냅니다. "01"~"12"
n : 0 없이 달을 나타냅니다. "1"~"12"
M : 3글자로 달을 나타냅니다. "Jan"
s : 초를 나타냅니다. "00"~"59"
S : 영어에서 순서를 나타내는 2글자로 된 접미사; "th", "nd"
t : 주어진 달의 날 수; 즉 "28"~"31"
U : 기준시점(GMT 1970년 1월1일 00:00:00)으로부터 지난 시간을 초로 표시
w : 요일을 숫자로 표시합니다. 즉 "0"(일요일) ~ "6"(토요일)
Y : 4글자로 연도표시, "1999"
y : 2글자로 연도표시, "99"
z : 날짜를 표시, "0"~"365"
Z : 지역간의 시간편차를 초단위로 표시, 즉 "-43200"~"43200"
신고

댓글을 달아 주세요

간단하게 스팸글 막기2 리퍼러

Posted by 비회원 프로그래밍/PHP : 2010.07.26 16:03

로봇중 실제 글쓰기 페이지로는 접속하지않고

글이 써지는 페이지로 바로 get방식으로 값을넘겨 써지게 하는경우가 있다.

ex) 글쓰기 = write.php 글쓰기완료 =write_ok.php
http://jaweb.tistory.com/write_ok.php?name=홍길동&id=test&subject=testtest

이런경우엔 아무리 스크립트로 막아도 값이 그대로 입력 될 수 있는데

php내의 리퍼러 함수를 이용 막을수 있다.

$referer = $_SERVER['HTTP_REFERER'];
//referer 에 리퍼러값을 담음

$referer_temp = parse_url( $referer );
//temp에 값을 잘라서 넣음

$referer_path = $referer_temp['path'];
//잘려진 값을 path에 넣음.

이후 if문을 통해 아래와같이 도메인을 제외한 값을 검색 해주면 된다.

$referer_path=="/board/write.php"

신고

댓글을 달아 주세요

년도 목록 쉽게 뿌리기

Posted by 비회원 프로그래밍/PHP : 2010.07.06 14:32

아주 간단..

$now_year 에 date 함수를 이용 Y = 2009 형식으로 time (현재시간값을 가져오는 함수)을 가져옴.

이후 for문을 통해서 현재년도값+5 부터 현재연도값-5 값 까지 날짜를 추출함.

option을 뿌릴 때 반복되는 년도값과  $now_year에 저장된 값을 비교해서 같은경우 selected 되게 조정.



<?
$now_year=date("Y",time());
?>

<select name="year">
 <?for($k=($now_year+5);$k>=($now_year-5);$k--){?>
  <option value="<?=$k?>" <?if($k==$now_year){?>selected<?}?>><?=$k?></option>
 <?}?>
</select>

신고

댓글을 달아 주세요

페이지별 메뉴 고정 쉽게 하는법

Posted by 비회원 프로그래밍/PHP : 2010.06.23 09:55


예를들어 페이지가 이것일때  /02_shc/sub01.php

$referer = $_SERVER['REQUEST_URI']; //리퍼러 값 저장.
$referer_temp = parse_url( $referer ); // 리퍼러의 host이름 분리,저장.
$ref_exp=explode("/",$referer_temp[path]);
$ref_cnt=count($ref_exp);

현재 페이지의 폴더명
$refolder =$ref_exp[$ref_cnt-2]; // 02_shc

현재 페이지명
$reffile =$ref_exp[$ref_cnt-1]; // sub01.php

현재 페이지 파일명
$reffilenum =substr($reffile,3,2); // 01


레프트 메뉴가 sub01, 02 , 03 ... 10 등으로 떨어질때
왼쪽 메뉴만 고정시키고 싶다면

위 코드를 삽입 한 후
페이지가 sub01 일때만 보여지고 다른 페이지일땐 안보여지게 하는곳 위 아래에

<?if($reffilenum=="01"){?>
  서브메뉴삽입
<?}?>

위와 같이 삽입하면 잘 됨

신고

댓글을 달아 주세요


function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
신고

댓글을 달아 주세요

PHP 절대경로, 상대경로 확인법

Posted by 비회원 프로그래밍/PHP : 2010.06.21 09:19


<?
global $PHP_SELF;

$thisfilename=basename(__FILE__);
$temp_filename=realpath(__FILE__);
if(!$temp_filename) $temp_filename=__FILE__;
$osdir=eregi_replace($thisfilename,"",$temp_filename);
unset($temp_filename);

$virdir = eregi_replace($thisfilename,"",$PHP_SELF);

echo $osdir . "<br>"; // 절대경로
echo $virdir; // 상대경로
?>

신고

댓글을 달아 주세요

DAUM 뉴스 송고 XML 생성 패턴

Posted by 비회원 프로그래밍/PHP : 2010.06.08 14:26


회사안에서 업데이트로 진행하게 된 패턴을 간략히 기재함..

형태는 아래와 같이 지정한다.

http://test.com/daumview/createXML.php/글번호.xml 

간략히 설명하자면

1.createXML.php 페이지 내에서 uri 값을 체크 후 '글번호.xml' 부분만 빼온다.
2.글번호에 해당하는 값을 DB에 검색 후 하단에 뿌리기.

소스구성은

<?
header("Content-type: text/xml; charset=EUC-KR");
include "db.php";   //디비환경설정파일


$uri=("/",$_SERVER['REQUEST_URI']);
//uri 값 이용 글번호값 추출
$idx
//여기에 글번호를 넣음

$idx로 쿼리를 날려 해당 글 내용을 뽑아옴
$row에 담음.

//**여기서 중요
//이 페이지가 xml 이라는것을 선언해줘야함.
//상단의 header 부분과 이 부분이 빠지면 실제 xml 이 출력될때에 에러가 발생할수 있음.
echo "<?xml version=\"1.0\" encoding=\"EUC-KR\"?>";
?>
<NEWS ver="1.0" act="C" orgid="<?=$idx?>">

<DATETIME><?=$wdate?></DATETIME>

<WRITER_LIST>

<WRITER>

<NAME><?=$name?></NAME>

<EMAIL><?=$email?></EMAIL>

</WRITER>

</WRITER_LIST>

<CATEGORY_LIST>

<CODE><?=$cate?></CODE>

</CATEGORY_LIST>

<TITLE><![CDATA[<?=$subject?>]]></TITLE>

<SUB_TITLE><![CDATA[<?=$link?>]]></SUB_TITLE>

<TEXT><![CDATA[[<?=$content?>]]>

</TEXT>

<IMG_LIST>

<IMG>
<URL><![CDATA[<?=$file1_val?>]]></URL>
<DESC><![CDATA[<?=$file1_name?>]]></DESC>
</IMG>

</IMG_LIST>


<EXT>

<OUTLINK><![CDATA[<?=$real_path?>]]></OUTLINK>
<COPYRIGHT><![CDATA[<?=$copy_msg?>]]></COPYRIGHT>

</EXT>

</NEWS>


이런 형태로 구성되며
xml 선언후 제일 상단에 띄워쓰기가 들어가는 경우 에러가 발생할수 있다.

작업한 이후 소스보기를 통해서 띄워쓰기가 없이 제대로 구성되어있는지 확인해봐야함.

http://cs.daum.net/faq/list/15,4112.html

이 페이지에서 간략한 구성도를 확인할수 있다.

신고

댓글을 달아 주세요


 
아예 기초도 모르는 상태에서 보시면 도움이 될겁니다.

책보고 응용하여 제작한게 대부분이고 몇가지는 퍼온것들도 있습니다.



1.php
http://jaweb.anyhost.co.kr/study/

2.jQuery
http://jaweb.anyhost.co.kr/jstudy/
신고

댓글을 달아 주세요

파일 업로드 클래스

Posted by 비회원 프로그래밍/PHP : 2010.04.29 16:10


현재 제작중인 상태이며 70%정도 되어있음.

<?
Class upload{
 //파일 첨부할때 첨부폴더 내에 파일수 반환 php4_scandir($dir) 후
 //배열 count 후 나오는 값들이 1000개가 넘는경우 폴더를 재 생성해서 적용시킴.
 
 var $file_temp;  //temp 디렉토리
 var $file_name;  //원본 파일명
 var $file_size;  //원본 업로드 사이즈

 var $upfile_cnt; //디렉토리 내 파일 갯수
 var $ext_file_name; //파일 확장자

 function upload(){}

 function file_up_dir($filename,$filepath,$board){
  $this->board =$board;
  $this->filepath =$filepath;

  $this->temp = $_FILES[$filename]["tmp_name"]; //temp 디렉토리
  $this->name = $_FILES[$filename]["name"];  //원본 파일명
  $this->size = $_FILES[$filename]["size"];  //원본 업로드 사이즈
  
  $this->dir_chk($this->filepath);
  $this->file_name_change($this->name,$this->filepath);

  move_uploaded_file($this->temp,$this->filepath.$this->real_file_name);
 }

 function upload_result_show(){
  return $this->result=array($this->real_file_name,$this->name,$this->size);
 }

 function dir_chk($dir){
  if(!is_dir($dir)){
   mkdir($dir,0777);
   chmod($dir,0777);
  }
 }

 function file_name_change($real_file,$filepath){
  $cnt   =count(php4_scandir($filepath));
  $ext_name  =ext_get($real_file);

  $change_name =$this->board;
  $change_name .="_";
  $change_name .=$cnt;
  $change_name .=".";
  $change_name .=$ext_name;
  
  $this->real_file_name= $change_name;
 }

 function file_del($filename,$filepath){
  unlink ($filepath.$filename);
 }
 
}
?>

신고

댓글을 달아 주세요

PHP class 기본강좌

Posted by 비회원 프로그래밍/PHP : 2010.04.29 14:25


구구단을 예로 살펴봤음.
class 는 생성자 라는게 있는데
클래스 생성시에 같이 생성되어 실행되는 것이고
클래스명과 동일한 함수를 만들게 되면 실행이 된다.

아래 코드는 구구단 클래스를 생성자 없이 만든것이며 def=9 는 def 값이 없는경우 자동으로 *9 까지 하게끔
지정해둔 것이다.

<?
Class gugudan{
 function gugudan_go($dan,$def=9){
  $dan;
  $def;
  
  echo $dan." 단";
  echo "<br>";
  for($i=1;$i<=$def;$i++){
   $res=$i*$dan;
   echo $dan." * ".$i." = '".$res."'";
   echo "<br>";
  }
 }
}

$gugu=new gugudan();
?>

신고

댓글을 달아 주세요



strcmp 처럼 문자와 배열값 비교해주는 펑션이 있었던거같은데..
도저히 못찾겠어서 그냥 만들었음.. -..-


function alert_back($msg_type="WRITE",$msg="ERROR!! 확인후 다시 해 보시길 바랍니다."){
 if($msg==""){$msg=$this->msg;}
 if($msg_type==""){$msg_type=$this->msg_type;}
 echo "<script>alert('".$msg_type." ".$msg."');history.go(-1);false;</script>";
}


function arr_strcmp($text,$arr){
    $msg="배열내에 ".$text." 값이 존재하지 않습니다.";
    $arrcnt=count($arr);
    for($i=0;$i<$arrcnt;$i++){
        if(!strcmp($text,$arr[$i])){
            return true;
        }else{
            alert_back($msg,$i);
        }
    }
}
신고

댓글을 달아 주세요

PHP & ASP 간단하게 스팸글 막기.

Posted by 비회원 프로그래밍/PHP : 2010.04.15 13:45


클릭하지 않고 폼값으로만 넘기는 로봇이 쓰는글의 경우에만 해당하는 스팸글 차단 방법입니다.

모든것에 다 통용되진 않으니 지속적인 비아그라.. 씨알리스.. sexxdsfa 이런것들 들어올때 사용하시면 좋습니다.



입력받는 페이지 --- write

1.<input type=hidden name=spam_chk_val value=''> 를 폼 바로밑에 넣어준다

2. input text나 radio 등에다가 onclick="document.폼이름.spam_chk_val.value='yes'" 를 적어준다.

3. 실제 저장하는 페이지에다가 아래처럼 상단에 필터링 해 준다.


DB저장 페이지 --- write_ok

ASP
If spam_chk_val<>"yes" Then%>
 <script language="javascript">
    alert("스팸글로 분류되었습니다..");
    history.back();
 </script><%
 response.end
End if

PHP
If($spam_chk_val<>"yes"){?>
 <script language="javascript">
    alert("스팸글로 분류되었습니다..");
    history.back();
 </script>
<?}else{?>

<?}?>

신고

댓글을 달아 주세요

참고링크 : http://php.net/manual/kr/function.strpos.php


 function number_format_chk($string){
  $pos = strpos($string, ",");

  if($pos==false){
   return number_format($string);
  }else{
   return $string;
  }
 }

신고

댓글을 달아 주세요

1.datetime을 timestamp 로 변경

<?
$test_date="2010-03-02 13:35:33";
echo strtotime($test_date);
?>


2.timestamp를 datetime으로 변경
<?
$test_date="1267504533";
echo date("Y-m-d h:i:s",$test_date);
?>
신고

댓글을 달아 주세요

$dirs=count(scandir("폴더명"));
echo $dirs;

 

function dirs_chk($dir){
 $dirs=count(scandir($dir));  
 echo $dirs;
}
dirs_chk("폴더명");



*추가설명
scandir 에서 해당 디렉토리명으로 검색하여 파일명들을 배열로 넣어줍니다.
이후 count로 배열 갯수 확인한 후 echo

신고

댓글을 달아 주세요

php 배열이 몇번째인지 위치 찾기

Posted by 비회원 프로그래밍/PHP : 2010.03.06 10:20

기본 예제
<?
$array=array("aa","bb","cc");
$src="cc";
echo array_search ($src, $array);
?>

활용예제
: 카테고리가 2차 3차로 나뉘어질때 3차 카테고리가 변경되어 예전 값이 없는 경우를 찾아내
값이 있으면 cate2_val_view에 true를 줘서 뿌려줄때 확인하고 뿌려준다.

<?
$cate_arr_val=array_search ($row[cate_val], $cate_name_val);
if($cate_arr_val){
 $qry="select cate_code$cate_arr_val from board_info where cate_code$cate_arr_val like '%$row[cate_val2]%'";
 $res = $DB -> query($qry);
 $cate_row=$DB -> fetch_array($res, MYSQL_ASSOC);
 if($cate_row[0]==""){
  $cate2_val_view="false";
 }else{
  $cate2_val_view="true";
 }
}
?>

array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search주어진 값으로 배열을 검색하여 성공시 해당하는 키를 반환

설명

mixed array_search ( mixed $needle , array $haystack [, bool $strict ] )

haystack 에서 needle 을 찾습니다.

인수

needle

찾는 값.

Note: needle 이 문자열이면, 대소문자를 구분하여 비교합니다.

haystack

배열.

strict

세번째 인수 strictTRUE로 설정하면, array_search() 함수는 haystack 에서 needle자료형도 확인합니다.

반환값

배열에서 needle 을 찾으면 키를 반환하고, 아니면 FALSE를 반환합니다.

haystack 에서 needle 을 두 번 이상 발견하면, 처음 매치한 키를 반환합니다. 매치하는 모든 값에 대해 키를 반환받으려면, array_keys()에 선택적인 search_value 인수를 사용하십시오.

Warning

이 함수는 논리 FALSE를 반환하지만, 0이나 "" 등, 논리 FALSE로 취급할 수 있는 다른 값을 반환할 수 있습니다. 자세한 정보는 논리형 섹션을 참고하십시오. 이 함수의 반환값을 확인하려면 === 연산자를 이용하십시오.

변경점

버전 설명
4.2.0 PHP 4.2.0 이전에, array_search()는 실패시에 FALSE 대신 NULL을 반환했습니다.

예제

Example #1 array_search() 예제

<?php
$array 
= array(=> 'blue'=> 'red'=> 'green'=> 'red');

$key array_search('green'$array); // $key = 2;
$key array_search('red'$array);   // $key = 1;
?>

참고

신고

댓글을 달아 주세요

출처 : phpschool



<div id="DivContents"> 
    <?=$sContents?> 
</div> 


<script> 
function imgResize() 

    // DivContents 영역에서 
이미지가 maxsize 보다 크면 자동 리사이즈 시켜줌 
    maxsize = 725; // 가로
사이즈 ( 다른값으로 지정하면됨) 
    var content = document.getElementById("DivContents"); 
    var img = content.getElementsByTagName("img"); 
    for(i=0; i<img.length; i++) 
    { 

        if ( eval('img[' + i + '].width > maxsize') ) 
        { 
            var heightSize = ( eval('img[' + i + '].height')*maxsize )/eval('img[' + i + '].width') ; 
            eval('img[' + i + '].width = maxsize') ; 
            eval('img[' + i + '].height = heightSize') ; 
        } 
    } 

window.onload = imgResize; 
</script>
신고

댓글을 달아 주세요

PHP 환경변수 예 (Predefined Variables)

Posted by 비회원 프로그래밍/PHP : 2010.03.02 18:16

echo "GATEWAY_INTERFACE: ".$GATEWAY_INTERFACE."<br>";
echo "SERVER_NAME: ".$SERVER_NAME."<br>";
echo "SERVER_SOFTWARE: ".$SERVER_SOFTWARE."<br>";
echo "SERVER_PROTOCOL: ".$SERVER_PROTOCOL."<br>";
echo "REQUEST_METHOD: ".$REQUEST_METHOD."<br>";
echo "QUERY_STRING: ".$QUERY_STRING."<br>";
echo "SCRIPT_NAME: ".$SCRIPT_NAME ."<br>";
echo "REQUEST_URI: ".$REQUEST_URI ."<br>";
echo "DOCUMENT_ROOT: ".$DOCUMENT_ROOT ."<br>";
echo "HTTP_ACCEPT: ".$HTTP_ACCEPT ."<br>";
echo "HTTP_ENCODING: ".$HTTP_ENCODING ."<br>";
echo "HTTP_ACCEPT_LANGUAGE: ".$HTTP_ACCEPT_LANGUAGE ."<br>";
echo "HTTP_CONNECTION: ".$HTTP_CONNECTION ."<br>";
echo "HTTP_HOST: ".$HTTP_HOST ."<br>";
echo "HTTP_REFFERER: ".$HTTP_REFFERER ."<br>";
echo "HTTP_USER_AGENT: ".$HTTP_USER_AGENT ."<br>";
echo "REMOTE_ADDR: ".$REMOTE_ADDR ."<br>";
echo "REMOTE_PORT: ".$REMOTE_PORT ."<br>";
echo "SCRIPT_FILENAME: ".$SCRIPT_FILENAME ."<br>";
echo "SERVER_ADMIN: ".$SERVER_ADMIN ."<br>";
echo "SERVER_PORT: ".$SERVER_PORT ."<br>";
echo "SERVER_SIGNATURE: ".$SERVER_SIGNATURE ."<br>";
echo "PHP_SELF: ".$PHP_SELF."<br>";
echo "argc: ".$argc."<br>";

echo "argv: ";
 for($i=0;$i<count($argv);$i++) echo $argv[$i];
  echo "<br>";

echo "HTTP_COOKIE_VARS: ";
 for($i=0;$i<count($HTTP_COOKIE_VARS); $i++) echo $HTTP_COOKIE_VARS[$i];
  echo "<br>";

echo "HTTP_GET_VARS: ";
 for($i=0;$i<count($HTTP_GET_VARS);$i++) echo $HTTP_GET_VARS[$i];
  echo "<br>";

echo "HTTP_POST_VARS: ";
 for($i=0;$i<count($HTTP_POST_VARS);$i++) echo $HTTP_POST_VARS[$i];
  echo "<br>";

echo "HTTP_POST_VARS: ";
 for($i=0;$i<count($HTTP_POST_VARS);$i++) echo $HTTP_POST_VARS[$i];
  echo "<br>";

echo "HTTP_POST_FILES: ";
 for($i=0;$i<count($HTTP_POST_FILES);$i++) echo $HTTP_POST_FILES[$i];
  echo "<br>";

echo "HTTP_ENV_VARS: ";
 for($i=0;$i<count($HTTP_ENV_VARS);$i++) echo $HTTP_ENV_VARS[$i];
  echo "<br>";

echo "HTTP_SERVER_VARS: ";
 for($i=0;$i<count($HTTP_SERVER_VARS);$i++) echo $HTTP_SERVER_VARS[$i];
  echo "<br>";

신고

댓글을 달아 주세요

KCP 연동 빨리 하려면

Posted by 비회원 프로그래밍/PHP : 2010.02.09 17:06
샘플파일 기준으로 설명했음. 

1.kcp 샘플폴더를 / 안에 복사
2.결제페이지에서 js , cd , code 값 수정  (test-> 실결제로)
3.pp_ax_hub.php 수정 (bin 절대경로)
4./bin 폴더내의 pp_cli 권한을 777로 수정
5.pp_cli -h 로 제대로 적용됐는지 확인
6.결제 테스트

신고

댓글을 달아 주세요


1.filename = $_FILES[file][name][$i];  이런식으로 선언함
2.denyfile에 배열로 업로드를 막을 파일 올려둠(php,html,exe막기 등..)
3.in_array 로 배열 체크 . 만약 있다면 alert 을 띄워줌


$filename_ext=strtolower(array_pop(explode('.',$filename)));
$denyfile = array("php","php3","exe","cgi","phtml","html","htm","pl","asp","jsp","inc","dll"); 

if(in_array($filename_ext,$denyfile))
{
echo("
<script>
window.alert('$filename 파일은 업로드할수 없는 확장자의 파일입니다.');
history.go(-1);
</script>
");
exit;
}
신고

댓글을 달아 주세요

php 확장자 뽑아오기

Posted by 비회원 프로그래밍/PHP : 2010.02.04 16:36

간단항 펑션임
1.strtolower 로 소문자변환
2.array_pop 으로 맨 뒤 배열을 뽑아옴
3.. 으로 $value 를 explode 함

순서는 거꾸로 이루어짐

예를들어 test.testsetse.php.asp 로 업로드 했을경우
asp 만 뽑힌다.



<?
function ext_get($value){
return strtolower(array_pop(explode('.',$value)));
}
echo ext_get("test.testsetse.php.asp");
?>
신고

댓글을 달아 주세요

php 문자열 자르기 펑션

Posted by 비회원 프로그래밍/PHP : 2010.02.02 11:44

매우 간단함 (초보용)
1.글로벌로 지정된 cut_size 를 불러옴
2.str길이 재서 cut_size 보다 크면 substr 으로 cut_size 만큼 불러오고 뒤에 .. 을 붙여줌
3.만약에 str<cut_size 면 그냥 str 를 불러옴

사용방법은

<?=str_cut_go('제부도소년빅파크오브인천인송도컨벤시아씨티')?>


function str_cut_go($str){
global $cut_size;
if(strlen($str)>$cut_size){
echo substr($str,0,$cut_size)."..";
}else{
echo $str;
}
}



신고

댓글을 달아 주세요

php 에서 date 형식 종류

Posted by 비회원 프로그래밍/PHP : 2010.01.22 13:45

date

(PHP 4, PHP 5)

date — 로컬 날짜/시간을 형식화합니다

 설명

string date ( string $format [, int $timestamp ] )

정수형으로 주어지는 timestamp 나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp 는 선택적이고, 기본값은 time()의 값입니다.

 인수

formant

출력하는 날짜 string의 형식. 아래 형식화 옵션을 참고하십시오.

다음 문자들을 format 인수 문자열로 인식합니다.
format 문자 설명 반환값 예시
--- ---
d 일, 앞에 0이 붙는 2 숫자 01에서 31
D 요일 글자 표현, 3 문자 Mon에서 Sun
j 앞에 0이 붙지 않는 일 1에서 31
l (소문자 'L') 요일의 완전한 글자 표현 Sunday에서 Saturday
N 요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) 1(월요일)에서 7(일요일)
S 일 영어 접미사, 2 문자 stndrdthj와 잘 맞습니다.
w 요일 숫자 표현 0(일요일)에서 6(토요일)
z 해당 연도 일차 (0에서 시작) 0에서 365
--- ---
W ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) 예시: 42 (그 해의 42번째 주)
--- ---
F January나 March 같은 월의 완전한 글자 표현 January에서 December
m 0이 붙는 월 숫자 표현 01에서 12
M 월의 축약 글자 표현, 3 문자 Jan에서 Dec
n 0이 붙지 않는 월 숫자 표현 1에서 12
t 주어진 월의 일 수 28에서 31
--- ---
L 윤년 여부 윤년엔 1, 그 외엔 0
o ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) 예시: 1999나 2003
Y 연도의 완전한 숫자 표현, 4 숫자 예시: 1999나 2003
y 연도의 두 숫자 표현 예시: 99나 03
시간 --- ---
a 오전과 오후의 소문자 am 또는 pm
A 오전과 오후의 대문자 AM 또는 PM
B 스와치 인터넷 시간 000에서 999
g 0이 붙지 않는 12시간 형식 시 1에서 12
G 0이 붙지 않는 24시간 형식 시 0에서 23
h 0이 붙는 12시간 형식 시 01에서 12
H 0이 붙는 24시간 형식 시 00에서 23
i 0이 붙는 분 00에서 59
s 초, 0이 붙음 00에서 59
u 마이크로초 (PHP 5.2.2에서 추가) 예시: 54321
시간대 --- ---
e 시간대 식별자 (PHP 5.1.0에서 추가) 예시: UTCGMT,Atlantic/Azores
I (대문자 i) 일광 절약 시간 여부 일광 절약 시간이면 1, 아니면 0
O 그리니치 시간(GMT)과 시차 예시: +0200
P 시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 예시: +02:00
T 시간대 축약어 예시: ESTMDT ...
Z 시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 -43200에서 50400
날짜/시간 표현 --- ---
c ISO 8601 날짜 (PHP 5에서 추가) 2004-02-12T15:19:21+00:00
r » RFC 2822 형식 날짜 예시: Thu, 21 Dec 2000 16:01:07 +0200
U 유닉스 에포치(January 1 1970 00:00:00 GMT)부터 초수 time() 참조

format 문자열로 인식되지 않는 문자는 그대로 출력합니다. Z 형식은 gmdate()를 이용할 때는 항상 0을 반환합니다.

Note: 이 함수는 integer 타임스탬프만 받아들이므로, u 형식 문자는 date_create()로 만들어진 사용자 기반 타임스탬프를 date_format()함수에 이용할 때만 유용합니다. 

timestamp

선택적인 timestamp 인수는 timestamp 가 주어지지 않았을 경우, 현재 로컬 시간을 기본값으로 가지는 integer 유닉스 타임스탬프입니다. 즉, 기본값은 time() 값입니다.

 반환값

형식화된 날짜 문자열을 반환합니다. timestamp 에 숫자가 아닌 값을 사용하면, FALSE를 반환하고 E_WARNING 등급 오류가 발생합니다.

 오류/예외

모든 날짜/시간 함수 호출은 시간대가 유효하지 않을 때 E_NOTICE를, 시스템 설정이나 TZ 환경 변수를 사용할 때 E_STRICT를 생성합니다.date_default_timezone_set()을 참고하십시오.

 변경점

버전 설명
5.1.0 유효한 타임스탬프 범위는 보통 Fri, 13 Dec 1901 20:45:54 GMT 에서 Tue, 19 Jan 2038 03:14:07 GMT 입니다. (이 날짜들은 32비트 부호 있는 정수의 최소값과 최대값에 해당합니다) 그러나, PHP 5.1.0 이전에는 몇몇 시스템에서 이 범위가 01-01-1970에서 19-01-2038로 제한되었습니다. (윈도우 등)
5.1.0

시간대 오류시 E_STRICT와 E_NOTICE가 발생합니다.

5.1.1 format 인수 지정에 사용할 수 있는 유용한 표준 날짜/시간 상수가 있습니다.

 예제

Example #1 date() 예제코드

<?php
// 기본 시간대를 설정. PHP 5.1 부터 가능.
date_default_timezone_set('UTC');


// 출력 예시: Monday
echo date("l");

// 출력 예시: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// 출력: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

/* 형식 인수로 상수 사용하기 */
// 출력 예시: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// 출력 예시: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

format 문자열로 인식하는 문자 바로 앞에 백슬래시를 붙여서 이스케이프를 함으로써, 인식하는 것 막을 수 있습니다. 백슬래시가 붙는 문자가 이미 특별한 의미를 가지고 있다면, 백슬래시를 이스케이프해야 합니다.

Example #2 date()의 회피 문자

<?php
// 다음의 출력: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

date()와 mktime()을 함께 사용함으로써 미래나 과거의 시간을 얻을 수 있습니다.

Example #3 date()와 mktime() 예제

<?php
$tomorrow  
mktime (0,0,0,date("m")  , date("d")+1date("Y"));
$lastmonth mktime (0,0,0,date("m")-1date("d"),   date("Y"));
$nextyear  mktime (0,0,0,date("m"),   date("d"),   date("Y")+1);
?>

Note: 이는 일광 절약 시간을 고려하기 때문에, 단순히 timestamp에 하루나 한달에 해당하는 초를 더하는 것보다 신뢰할 수 있습니다. 

date() 형식화의 몇몇 예제. 모든 다른 문자들도 이스케이프 해야함에 주의하십시오. 현재 특별한 의미를 가진 어떤 것이 바람직하지 못한 결과를 가져올 수 있고, 앞으로의 PHP 버전에서는 다른 문자들도 지정될 수가 있습니다. 이스케이프 할 때는, \n이 줄바꿈으로 인식 되는 것과 같은 예을 피하기 위해서는 작은 따옴표를 사용해야만 합니다.

Example #4 date() 형식화

<?php
// Assuming today is: March 10th, 2001, 5:16:18 pm

$today date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today date("m.d.y");                         // 03.10.01
$today date("j, n, Y");                       // 10, 3, 2001
$today date("Ymd");                           // 20010310
$today date('h-i-s, j-m-y, it is w Day');     // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:16:18 m is month
$today date("H:i:s");                         // 17:16:18
?>

다른 언어로 날짜를 형식화 하기 위해서는, date() 대신에 setlocale()과 strftime() 함수를 사용해야 합니다.

 주의

Note: 날짜의 문자 표현에서 타임스탬프를 만드려면, strtotime()을 사용할 수 있습니다. 추가적으로, 몇몇 데이터베이스는 날짜 형식에서 타임스탬프로 바꾸는 함수를 가지고 있습니다. (MySQL의 » UNIX_TIMESTAMP 등) 

Tip

PHP 5.1부터 요청의 시작 타임스탬프가 $_SERVER['REQUEST_TIME']에 존재합니다.

 참고

  • getlastmod() - 페이지를 수정한 최종 시간을 얻습니다
  • gmdate() - Format a GMT/UTC date/time
  • mktime() - Get Unix timestamp for a date
  • strftime() - Format a local time/date according to locale settings
  • time() - Return current Unix timestamp


신고

댓글을 달아 주세요

do while,case는 애매해서 하다말았습니다.



<table border=1>
<tr>
<td>
<!--for/ifelse start-->
for/ifelse
<table border=1>
<tr>
<td>
<?
for($i=1;$i<=10;$i++){
//if($i==1){continue;} 1단 안나오게 할때사용
for($j=1;$j<=$i;$j++){
echo "★";
}

echo "<br>";
}
?>
<?
for($i;$i>=1;$i--){
//if($i==1){continue;} 1단 안나오게 할때사용
for($j=1;$j<=$i;$j++){
echo "★";
}

echo "<br>";
}
?>
</td>
</tr>
</table>
<!--for/ifelse end-->
</td>
<td>
<!--while/case start-->
while/case
<table border=1>
<tr>
<td>
<?
$i=1;
while($i<=10){
//if($i==1){continue;} 1단 안나오게 할때사용
$j=1;
while($j<=$i){
echo "★";
$j++;
}

echo "<br>";
$i++;
}
?>
<?
while($i>=1){
//if($i==1){continue;} 1단 안나오게 할때사용
$j=1;
while($j<=$i){
echo "★";
$j++;
}

echo "<br>";
$i--;
}
?>
</td>
</tr>
</table>
<!--while/case end-->
</td>
</tr>
<tr>
<td>
<!--foreach/ifelse start-->
foreach/ifelse
<table border=1>
<tr>
<td>
<?
$arr_int=array('1','2','3','4','5','6','7','8','9','10','11');
foreach($arr_int as $key=>$i){
//if($i==1){continue;} 1단 안나오게 할때사용
for($j=1;$j<=$i;$j++){
echo "★";
}

echo "<br>";
}
krsort($arr_int);
foreach($arr_int as $key=>$i){
if($i==11){continue;} //1단 안나오게 할때사용
for($j=1;$j<=$i;$j++){
echo "★";
}

echo "<br>";
}
?>
</td>
</tr>
</table>
<!--foreach/ifelse end-->
</td>
<td>
<!--while/case start-->
while/case
<table border=1>
<tr>
<td>
<?
$i=1;
while($i<=10){
//if($i==1){continue;} 1단 안나오게 할때사용
$j=1;
while($j<=$i){
echo "★";
$j++;
}

echo "<br>";
$i++;
}
?>
<?
while($i>=1){
//if($i==1){continue;} 1단 안나오게 할때사용
$j=1;
while($j<=$i){
echo "★";
$j++;
}

echo "<br>";
$i--;
}
?>
</td>
</tr>
</table>
<!--while/case end-->
</td>
</tr>
</table>
신고
태그 : php, 반복문, 조건문

댓글을 달아 주세요


<table border=1>
<tr>
<td>
<!--for/ifelse start-->
for/ifelse
<table border=1>
<tr>
<?for($i=1;$i<=9;$i++){
//if($i==1){continue;} 1단 안나오게 할때사용
?>
<td>
<b><?=$i?>단</b><br>
<?for($j=1;$j<=9;$j++){?>
<?=$i?> * <?=$j?> = <?=$i*$j?><br>
<?}?>
</td>
<?if($i%3==0){?>
</tr>
<tr>
<?}?>
<?}?>
</tr>
</table>
<!--for/ifelse end-->
</td>
<td>
<!--while/case start-->
while/case
<table border=1>
<tr>
<?
$k=1;
while($k<=9){
?>
<td>
<b><?=$k?>단</b><br>
<?
$j=1;
while($j<=9){?>
<?=$k?> * <?=$j?> = <?=$k*$j?><br>
<?
$j++;
}?>
</td>
<?
switch($k){
case($k%3==0)
?>
</tr>
<tr>
<?}?>
<?
$k++;
}
?>
</tr>
</table>
<!--while/case end-->
</td>
<td>
<!--foreach/ifelse start-->
foreach/ifelse
<table border=1>
<tr>
<?
$arr_int=array('1','2','3','4','5','6','7','8','9');
foreach($arr_int as $key=>$i){
?>
<td>
<b><?=$i?>단</b><br>
<?
foreach($arr_int as $key=>$j){
?>
<?=$i?> * <?=$j?> = <?=$i*$j?><br>
<?}?>
</td>
<?if($i%3==0){?>
</tr>
<tr>
<?}?>
<?}?>
</tr>
</table>
<!--foreach/ifelse end-->
</td>
<td>
<!--dowhile/case start-->
dowhile/case
<table border=1>
<tr>
<?
$k=1;
do{
?>
<td>
<b><?=$k?>단</b><br>
<?
$j=1;
while($j<=9){?>
<?=$k?> * <?=$j?> = <?=$k*$j?><br>
<?
$j++;
}?>
</td>
<?
switch($k){
case($k%3==0)
?>
</tr>
<tr>
<?}?>
<?
$k++;
}while($k<=9);
?>
</tr>
</table>
<!--dowhile/case end-->
</td>
</tr>
</table>
신고

댓글을 달아 주세요

 «이전 1  다음»