숫자만 입력이라던가, 특정 키를 막는등의 javascript에서 사용될 키코드 표

키코드

사용키(기능키)

키코드

사용키(문자키)

8

<백스페이스>

65

A

9

<Tab>

66

B

12

<Clear>

67

C

13

<Enter>

68

D

16

<Shift>

69

E

17

<Ctrl>

70

F

18

<Menu>

71

G

19

<Pause>

72

H

20

<Caps Lock>

73

I

21

</>

74

J

25

<한자>

75

K

27

<Esc>

76

L

32

<스페이스바>

77

M

33

<Page Up>

78

N

34

<Page Down>

79

O

35

<End>

80

P

36

<Home>

81

Q

37

<왼쪽 화살표>

82

R

38

<위쪽 화살표>

83

S

39

<오른쪽 화살표>

84

T

40

<아래쪽 화살표>

85

U

41

<Select>

86

V

42

<Print Screen>

87

W

43

<Execute>

88

X

44

<Snapshot>

89

Y

45

<Ins>

90

Z

46

<Del>

47

<Help>

 

91

<왼쪽 윈도우>

92

<오른쪽 윈도우>

144

<Nun Lock>

145

<Scroll Lock>

 

키코드

사용키(숫자키)

키코드

사용키(숫자 키패드)

48

0

96

0

49

1

97

1

50

2

98

2

51

3

99

3

52

4

100

4

53

5

101

5

54

6

102

6

55

7

103

7

56

8

104

8

57

9

105

9

 

 

106

*

 

 

107

+

 

 

109

-

 

 

110

.

 

 

111

/

 

키코드

사용키(펑션키)

키코드

사용키(특수문자)

112

F1

186

;

113

F2

187

=

114

F3

188

,

115

F4

189

-

116

F5

190

.

117

F6

191

/

118

F7

192

`

119

F8

219

[

120

F9

220

\

121

F10

221

]

222

'

블로그 이미지

스마트전

,

Window 속성(Property)

 

속성

설명

status

브라우저의 상태표시줄에 표시할 문자열

defaultStatus

상태표시줄에 기본적으로 표시할 문자열

self

window객체, 자기 자신

parent

window안 프레임의 부모 프레임

top

프레임이 설정되기 이전의 창

frames

window객체에 있는 프레임들

opener

open() 메소드로 열린윈도우에서 창을 참조

locationbar

윈도우의 location bar를 나타낼지의 여부

menubar

윈도우의 menu를 표시할 지의 여부

personalbar

윈도우의 personal bar를 표시할 지의 여부

scrollbars

윈도우의 scroll bar를 표시할 지의 여부

statusbar

윈도우의 status bar를 표시할 지의 여부

toolbar

윈도우의 tool bar를 표시할 지의 여부

tags

html문서에서 사용된 모든 태그들

classes

html문서에서 사용된 모든 style sheet class

 

 

Window 메소드

 

메소드

설명

open()

새로운 윈도우 열기

window.open("url","name","options")

 

options :

- menubar, toolbar, location, scrollbars, status, resizable : yes/no

- width, height, left, top : pixel

close()

윈도우 닫기

alert()

간단한 메세지를 표시하는 대화상자

confirm()

사용자로부터 확인을 받기 위한 대화상자

prompt()

사용자로부터 문자열을 입력 받기 위한 대화상자

setTimeout()

지정한 시간동안 기다린 후 명령 실행

clearTimeout()

setTimeout 메소드를 해제

setInterval()

주기적으로 작업을 실행하게 함

moveBy()

윈도우 상대 이동

moveTo()

윈도우 절대 이동

resizeBy()

윈도우의 상대적 크기 변경

resizeTo()

윈도우의 절대적 크기 변경

scrollBy()

윈도우에 보여지는 부분을 상대적으로 스크롤

scrollTo()

윈도우에 보여지는 부분을 절대적으로 스크롤

stop()

html문서 전송을 중지시킴

print()

윈도우에 포함된 html문서의 내용 출력 

 

 

Window객체의 이벤트 핸들러

 

이벤트 핸들러

설명

onBlur

브라우저가 포커스를 잃을 때 발생

onDragDrop

사용자가 다른 곳에서 객체를 브라우저 안에 넣으려고 할때 발생(익스플로러 미지원)

onError

문서를 읽는 중 에러가 생길 때 발생

onFocus

브라우저에 포커스를 얻을 때 발생

onLoad

문서를 읽을 때 발생

onMove

브라우저의 위치를 변경했을 때 발생(익스플로러 미지원)

onResize

창의 크기를 변경했을 때 발생(익스플로러 미지원)

onUnload

현재 문서를 지우려고 할 때 발생

 

'Javascript' 카테고리의 다른 글

자바스크립트 keycode  (0) 2012.09.17
자바스크립트 문자열 함수  (0) 2012.09.17
자바스크립트 parseInt tip  (0) 2012.04.06
자바스크립트 arguments,args  (0) 2012.01.31
자바스크립트 기본 명령어 모음  (0) 2012.01.10
블로그 이미지

스마트전

,

Method

Description

charAt()

문자열에서 특정 위치의 문자를 반환한다. 괄호 속에 지정해 있는 정수는 0에서 문자열 길이-1 정수를 입력할 있다.

 

ex> “abc”.charAt(1) 'b' 반환한다.

charCodeAt()

문자열에서 특정 위치의 문자의 유니코드값을 반환 한다. 괄호안 정수는 위와 동일

 

ex> “ABC”.charCodeAt(0) 65 반환(A 유니코드값)

concat()

2개의 문자열을 하나의 문자열로 만든다.

 

ex> "abc”.concat("def") "abcdef" 보여준다.

fromCharCode()

charCodeAt() 반대로 동작한다. 유니코드에서 글자를 반환해준다.

 

ex> String.fromCharCode(65,66,67) "ABC" 보여준다.

지정하는 인자는 여러개 지정할 있다.

indexOf()

문자열에서 특정 문자가 있는 위치를 반환한다.

괄호 속에 넣어줄 있는 인자는 2개가 있고 첫째것은 찾을 문자, 두번째 것은 찾기 시작할 위치이다.

두번째 인자는 지정하지 않을 있고 경우 문자열의 첫번째 문자부터 찾기 시작한다.

 

ex>"abcdf".indexOf("c") 2 반환한다. 만약, 찾을 문자가 없다면 정수 -1 반환한다.

lastIndexOf()

indexOf() 같은 동작을 한다.

유일한 차이점은 이것은 문자열의 오른쪽에서 부터 왼쪽으로 찾는다.

 

ex>"abcdcdef".lastIndexOf("cd") 4 반환한다.

indexOf() 이것이나 문자열의 위치는 모두 왼쪽에서 오른쪽으로 지정되고 첫번째 문자의 위치는 0으로 지정된다.

match()

문자열에서 특정 정규 표현식(regular expression) 매칭되는 문자열을 배열로 반환한다.

 

ex>

var str = "abc def ghi"

var arr = str.match(/\w+\s*/g)

 

arr ["abc", "def", "ghi"] 가지고 있다.

replace()

기존문자나 정규표현식( 해당하는) 특정 문자열로 바꾼다.

 

ex>

ar str = "abc def ghi def"

var arr = st.replace(/def/g, "DEF")

 

arr "abc DEF ghi DEF" 된다.

search()

문자열에서 문자나 정규표현식(regular expression) 검색한 것의 index 반환한다. 검색된 것이 없으면 -1 반환한다.

 

ex>

var str = "abc def ghi"

var arr = str.search(/\w+\s*/g)

위의 arr 값은 0(zero)이다.

slice()

문자열에서 위치 사이의 문자열을 반환한다.

substring()과의 차이점은 두번째 위치를 음수 정수로 지정하여 문자열의 끝에서의 위치를 지정할 있는 것이다.

 

ex>  "abcde".slice(1, -2) "bc" 반환한다.

split()

문자열을 특정 문자를 기준으로 나누어 하나의 배열에 차례대로 저장한다.

(정규 표현식도 가능하다)

 

ex> var arr = "abc,dfe,123".split(",")

arr [abc,dfe,123]으로 배열 객체가 된다.

 

"123+456+789".split(/\+/) ["123", "456", "789"] 나온다.

substr()

subString() 비슷하게 두개의 위치안의 문자열을 반환한다.

subString() 다른점은 문자열의 끝에서 부터도 찾을 있는 것이다.

 

ex> "abcd".substr(-1, 2)   "cd" 나온다.

substring()

개의 위치안의 문자열을 반환한다.

인자가 앞의 인자 하나만 들어가면, 위치부터 나머지 문자열을 모두 반환한다.

ex> “hello”.substring(2) llo

toLowerCase()

문자열을 모두 소문자로 바꾼다.

toUpperCase()

문자열을 모두 대문자로 바군다.

valueOf()

객체의 원래 값을 반환한다

블로그 이미지

스마트전

,

테이블에 들어 있는 특정 문자열을 다른 문자열로 바꾸고 싶을 때...replace를 사용하면 된다.

예를 들어 products 라는 테이블에 있는 origin이라는 컬럼의 china를 korea로 모두 바꾸고 싶다면...

UPDATE products SET origin=REPLACE(origin, "china", "korea")



이런 식으로 phpMyAdmin SQL 탭에 명령을 적어넣은 후 실행하면 된다.
만약 특정 회사의 것만 바꾸고 싶다면 뒤에 WHERE 절을 넣으면 된다.

UPDATE products SET origin=REPLACE(origin, "china", "korea") WHERE company="mycompany"



DB를 다른 곳으로 옮긴 뒤 몇 가지 수정할 일이 있었는데 매우 편리하게 금방 처리가 되었다.

 펌 http://jubuntu.tistory.com/94

'MySQL' 카테고리의 다른 글

달력 숫자 채우기  (0) 2019.10.16
MySQL IFNULL  (0) 2012.12.03
MySQL / FullText에서 특정 단어를 빠르게 검색하기  (0) 2012.08.30
SQL 인젝션 공격 방어  (0) 2012.07.31
SQL injection, SQL 주입 공격, SQL 주입 취약점  (0) 2012.07.31
블로그 이미지

스마트전

,
보통 MySQL에서 FullText에 대해서 단어를 검색할 때 LIKE "%words%"를 주로 사용하기 마련이다.
하지만 이는 대용량 데이터에서 검색할 때는 느린 쿼리 결과를 보여준다.

먼저 FullText에 인덱싱을 걸어주자~!

CREATE FULLTEXT INDEX idx_1 ON my_search (text_data);
 

FullText에 대해서 빠르게 검색할 수 있는 방법이 있으니 MATCH, AGAINST 문법을 사용하면 된다.
FullText Indexing을 사용하는 방법으로 사용방법은

1. 기본적으로 words 에 대해 검색하고자 할 때
1 select * from table_name where MATCH(column_name) AGAINST("words")

2. words1과 words2를 포함한 것을 찾고자 할 때(이 때는 뒤에 IN BOOLEAN MODE라고 작성해 주어야 한다.)
1 select * from table_name where MATCH(column_name) 
2 AGAINST('+"words1" +"words2"' IN BOOLEAN MODE)

3. word1과 words2는 포함하고, words3는 포함하지 않는 것을 찾고자 할 때
1 select * from table_name where MATCH(column_name) 
2 AGAINST('+"words1" +"words2" -"words3"' IN BOOLEAN MODE)

참고문헌
http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html

http://snowple.tistory.com/345

'MySQL' 카테고리의 다른 글

MySQL IFNULL  (0) 2012.12.03
테이블 내 특정 문자열 한꺼번에 바꾸기 - REPLACE  (0) 2012.08.30
SQL 인젝션 공격 방어  (0) 2012.07.31
SQL injection, SQL 주입 공격, SQL 주입 취약점  (0) 2012.07.31
mysql 정리  (0) 2012.01.06
블로그 이미지

스마트전

,

PHP 정규 표현식 문법

PHP 2012. 7. 31. 14:27

< 정규 표현식 >

● .

.

임의의 한 문자. 줄바꿈 문자(/n)를 제외한 모든 문자를 대신할 수 있음

예시

.at // cat, hat, mat ...

 

● 반복

+

앞 글자가 한번 이상 반복될 수 있음

예시

(very )+nice = very nice, very very nice

*

앞 글자가 0번 이상 반복될 수 있음

예시

(very )*nice = nice, very nice, very very nice

 

● ?

?

없거나 하나인 문자. 하위 표현식을 옵션으로 취급한다.

예시

ca?t = ct, cat, abcatd

 

● -

-

범위를 사용하기 위한 것으로 문자 사이에 ‘-’를 사용

예시

[a-zA-Z] // 모든 대소문자 중의 한글자

 

● ^

^

[]안에서 사용할 때, ‘not’의 의미로, 제외하고자할 때 사용.

예시

[^a-z] // 소문자 제외

cf)^[a-z] // 소문자로 시작

 

● 문자열의 시작과 끝 고정하기

^

시작부분에 사용되며, 문자열 앞부분에 이 표현이 있어야 함

예시

^bob // bob으로 시작하는 문자열과 일치

$

뒷부분에 사용되며, 이 표현으로 문자열이 끝나야 함

예시

com$ // com으로 끝나는 문자열과 일치

^[a-z]$ // a-z까지의 모든 글자와 일치

 

● []

[]

[]안의 문자들을 문자 클래스라 한다, 포함

예시

[aeiou] // a 또는 e 또는 i 또는 o 또는 u를 포함하는 정보

 

 

● {}

{}

{}안에 숫자를 넣어서 반복 횟수 제한

예시

(very){3} // 3번 반복

(very){2, 4} // 2~4번 사이로 반복

(very){2, } // 적어도 2번 이상 반복

(very ){2,4} = very very, very very very, very very very very

 

● ()

()

패턴의 시작과 끝

예시

(very)*large // 'large', 'very large', 'very very large' ...

co(m){2}on // common

 

● |

|

or, 여러 문자열 중 선택

예시

com | edu | net // com이나 edu또는 net과 일치하는 문자열

 

● 문자클래스

[[:alnum:]] : 알파벳 문자, 숫자

[[:alpha:]] : 알파벳 문자

[[:lower:]] : 소문자

[[:upper:]] : 대문자

[[:digit:]] : 10진법 숫자

[[:xdigit:]] : 16진법 숫자, 문자

[[:punct:]] : 구두점

[[:blank:]] : 탭, 스페이스

[[:space:]] : 공백 문자

[[:cntrl:]] : 컨트롤 문자

[[:print:]] : 모든 출력 가능한 문자

[[:graph:]] : 스페이스를 제외한 모든 출력 가능 문자

 

● ereg(), eregi() (이 함수는 PHP 5.3.0부터 배제됨)

ereg()

문자열 중에 찾는 값이 있으면, true를 반환. 아니면 false를 반환

예제

<?php

if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {

echo "$regs[3].$regs[2].$regs[1]";

} else {

echo "Invalid date format: $date";

}

?>

결과

Invalid date format:

eregi()

〃, 대소문자를 구분

예제

<?php

$string = 'XYZ';

if (eregi('z', $string)) {

echo "'$string' contains a 'z' or 'Z'!";

}

?>

 

결과

'XYZ' contains a 'z' or 'Z'!

 

● ereg_replace(), eregi_replace()

ereg_replace()

문자열 중 찾는 값이 나오면 치환값으로 치환

예제

<?php

$string = "This is a test";

echo str_replace(" is", " was", $string);

echo ereg_replace("( )is", "\\1was", $string);

echo ereg_replace("(( )is)", "\\2was", $string);

?>

결과

This was a testThis was a testThis was a test

eregi_replace()

〃, 대소문자를 구분

예제

<?

$text = "\"c:\\aaaa\\bbbb\\ccc\\";

$home=eregi_replace('\"[a-zA-Z]:[\]|[\]','/', $text);

echo "원래문자열 : {$text} <br>";

echo "바뀐문자열 : {$home}";

?>

결과

원래문자열 : "c:\aaaa\bbbb\ccc\
바뀐문자열 : /aaaa/bbbb/ccc/

 

'PHP' 카테고리의 다른 글

substr  (0) 2012.12.31
PHP 소켓 통신 TCP/IP  (0) 2012.12.13
PHP 정규표현식  (0) 2012.07.31
host 파일 수정  (0) 2012.07.31
PHP 내장 함수  (0) 2012.07.27
블로그 이미지

스마트전

,

PHP 정규표현식

PHP 2012. 7. 31. 14:25

원문/출처 : www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers/



정규표현식 문법

정규식 결과
foo The string “foo”
^foo “foo” at the start of a string
foo$ “foo” at the end of a string
^foo$ “foo” when it is alone on a string
[abc] a, b, or c
[a-z] Any lowercase letter
[^A-Z] Any character that is not a uppercase letter
(gif|jpg) Matches either “gif” or “jpeg”
[a-z]+ One or more lowercase letters
[0-9.-] Аny number, dot, or minus sign
^[a-zA-Z0-9_]{1,}$ Any word of at least one letter, number or _
([wx])([yz]) wy, wz, xy, or xz
[^A-Za-z0-9] Any symbol (not a number or a letter)
([A-Z]{3}|[0-9]{4}) Matches three letters or four numbers

정규표현식을 사용하는 함수

Function Description
preg_match() 문자열에 지정한 패턴이 존재하면 true, 아니면 false를 리턴
preg_match_all() 지정한 패턴과 일치하는 모든 문자열을 배열에 저장
preg_replace() 지정한 패턴과 일치하는 문자열을 교체
preg_split() 패턴을 기준으로 문자열을 분리하려 배열로 리턴
preg_grep() 배열중에 지정된 패턴을 포함하는 요소들을 배열로 리턴
preg_ quote() 지정된 패턴 앞에 '\'(역슬래쉬)를 추가한 문자열을 리턴.

자주 사용되는 함수들


// 도메인 유효성 검증

$url = "http://www.naver.com/";

if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {

    echo "Your url is ok.";

} else {

    echo "Wrong url.";

}


// 특정 문자의 강조

$text = preg_replace("/b(강조할문자)b/i", '<span style="background:#5fc9f6">1</span>', $text);

echo $text;


// 검색어에 효과주기

$title = get_the_title();

$keys= explode(" ",$s);

$title = preg_replace('/('.implode('|', $keys) .')/iu',

'<strong class="search-excerpt">\0</strong>', $title);


// 문서에 삽입된 모든 이미지 추출

$images = array();

preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);

unset($data);

$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);

foreach($data as $url)

{

$info = pathinfo($url);

if (isset($info['extension']))

{

if (($info['extension'] == 'jpg') ||

($info['extension'] == 'jpeg') ||

($info['extension'] == 'gif') ||

($info['extension'] == 'png'))

array_push($images, $url);

}

}


// 반복 입력된 단어 제거

$text = preg_replace("/s(w+s)1/i", "$1", $text);


// 반복 입력된 부호 제거

$text = preg_replace("/.+/i", ".", $text);


// XML/HTML 태그 추출

function get_tag( $tag, $xml ) {

  $tag = preg_quote($tag);

  preg_match_all('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.'}',

                   $xml,

                   $matches,

                   PREG_PATTERN_ORDER);


  return $matches[1];

}


// 특정 속성을 포함하는 XML/HTML 태그 추출

function get_tag( $attr, $value, $xml, $tag=null ) {

  if( is_null($tag) )

    $tag = '\w+';

  else

    $tag = preg_quote($tag);


  $attr = preg_quote($attr);

  $value = preg_quote($value);


  $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*".

                "(['\"])$value\\2[^>]*>(.*?)<\/\\1>/"


  preg_match_all($tag_regex,

                 $xml,

                 $matches,

                 PREG_PATTERN_ORDER);


  return $matches[3];

}


// 16진수 컬러값 체크

$string = "#555555";

if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $string)) {

echo "example 6 successful.";

}


// 웹페이지의 타이틀 추출

$fp = fopen("http://www.catswhocode.com/blog","r");

while (!feof($fp) ){

    $page .= fgets($fp, 4096);

}

$titre = eregi("<title>(.*)</title>",$page,$regs);

echo $regs[1];

fclose($fp);


// 아파치 로그 파싱

//Logs: Apache web server

//Successful hits to HTML files only.  Useful for counting the number of page views.

'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$'


//Logs: Apache web server

//404 errors only

'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$'


// 겹따옴표를 홑따옴표로 교체

preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);


// 비밀번호 완성도 체크

//Tests if the input consists of 6 or more letters, digits, underscores and hyphens.

//The input must contain at least one upper case letter, one lower case letter and one digit.

'\A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}\z'


// WordPress 이미지 표시

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>


<?php

$szPostContent = $post->post_content;

$szSearchPattern = '~<img [^>]* />~';


// Run preg_match_all to grab all the images and save the results in $aPics

preg_match_all( $szSearchPattern, $szPostContent, $aPics );


// Check to see if we have at least 1 image

$iNumberOfPics = count($aPics[0]);


if ( $iNumberOfPics > 0 ) {

     // Now here you would do whatever you need to do with the images

     // For this example the images are just displayed

     for ( $i=0; $i < $iNumberOfPics ; $i++ ) {

          echo $aPics[0][$i];

     };

};


endwhile;

endif;

?>


// 특정 이모티콘을 이미지로 교체

$texte='A text with a smiley :-)';

echo str_replace(':-)','<img src="smileys/souriant.png">',$texte);

'PHP' 카테고리의 다른 글

PHP 소켓 통신 TCP/IP  (0) 2012.12.13
PHP 정규 표현식 문법  (0) 2012.07.31
host 파일 수정  (0) 2012.07.31
PHP 내장 함수  (0) 2012.07.27
이클립스 Remote System 에서 코드 어시스트 받기 !  (0) 2012.07.11
블로그 이미지

스마트전

,

host 파일 수정

PHP 2012. 7. 31. 14:15

1. windows/system32/drivers/etc/hosts

위의 경로의 파일을 수정하면 나가는 url을 원하는 곳으로 지정할 수 있다.

ex)

127.0.0.1                localhost

221.143.151.20       www.thethe.co.kr

 

2. 그리고 연결될 서버의 dns 서버 수정

아파치의 httpd.conf 수정 하면 된다.

ex)

/usr/local/apache-1.3.33/conf/httpd.conf

 

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /home/webdocs/www/thethe/market
    ServerName openmarket.thethe.co.kr
    ErrorLog logs/error_log
    CustomLog logs/access_log common
</VirtualHost>

 

3. 확인은 prompt>nslookup [url]

ex)

c:\>nslookup www.thethe.co.kr

결과

Server:  kns.kornet.net
Address:  168.126.63.1

Name:    openmarket.thessa.co.kr
Address:  221.143.151.20

'PHP' 카테고리의 다른 글

PHP 정규 표현식 문법  (0) 2012.07.31
PHP 정규표현식  (0) 2012.07.31
PHP 내장 함수  (0) 2012.07.27
이클립스 Remote System 에서 코드 어시스트 받기 !  (0) 2012.07.11
PHP 함수 모음  (0) 2012.05.08
블로그 이미지

스마트전

,