IT_Programming/PHP

PHP 자주 쓰는 함수들

JJun ™ 2007. 9. 30. 11:29

문자열 처리함수에 대해서 알아봅니다.  
 
strlen("문자열")
trim(" 문자열 ")
ltrim(" 문자열 ")
rtrim(" 문자열 ")
chr(" 숫자 ")
ord(" 문자 ")
addslashes(" 문자열 ")
stripslashes(" 문자열 ")
nl2br(" 문자열 ")
strip_tags(" 문자열 ")
strtolower(" 문자열 ")
strtoupper(" 문자열 ")
explode("구분자" , "문자열") 문자열의 길이값을 반환합니다. 한글은 2 byte 의 값으로 반환합니다.
문자열에서 앞뒤 공백을 제거합니다.
문자열에서 왼쪽 공백을 제거합니다.
문자열의 오른쪽 공백을 제거합니다.
숫자에 해당하는 ASCII 코드의 문자를 출력합니다.
문자에 해당하는 ASCII 코드를 출력합니다.
문자열에서 특수문자가 있으면 백슬래시(\)를 덧붙여줍니다.
문자열에서 백슬래시가 있으면 제거합니다.
\n 으로 되어있는 문장을
태그로 변환해 줍니다.
문자열에서 태그가 있으면 모두 제거합니다.
문자열을 모두 소문자로 변환합니다.
문자열을 모두 대문자로 변환합니다.
구분자를 기준으로 문자열을 나누어서 배열로 저장합니다.
 
 ex. $text = explode( "++" , "100++삼성++키보드++액정모니터" );
 [결과] $text[0] = "100";   $text[1] = "삼성";   $text[2] = "키보드";   $text[3] = "액정모니터" 가 각각 저장.
substr( "문자열" , "시작배열번호" , "길이" ) 문자열에서 원하는 길이만큼 문자열을 추출합니다.

 
 수학관련 함수에 대해서 알아봅니다.  
 
ceil(실수)
floor(실수)
round(실수)
number_format(숫자)
rand( 최소값 , 최대값 )
 소수를 무조건 올림합니다.
소수를 무조건 내림합니다.
반올립합니다.
천단위마다 , (콤마) 를 찍습니다.
최소값과 최대값 사이에서 난수를 발생시킵니다. 
 
※ 최소 , 최대값을 지정하지 않으면 0 ~ 32767 사이에서 PHP 가 알아서 난수를 발생시킵니다.

 
 시간관련 함수에 대해서 알아봅니다.  
 
time()
microtime()
 현재 UNIX 시간을 알아옵니다.
소수점이하까지 정확한 시간을 알아옵니다.
※ UNIX 시간 : 1970년 1월 1일 0시 0분 1초부터 지금까지의 초(second)입니다.
date("시간구성" , "기준시간") 기준시간에 해당하는 시간을 가져옵니다.
( 기준시간이 없을경우에는 현재 시간을 가져옵니다. )
 
Y 연도를 네자리로 출력   w 요일을 한자리 숫자로 출력
y 연도를 두자리로 출력   g 시간을 12시간제로 출력 (한자리 숫자로 출력)
M 월을 단축 영문자로 출력 (Mar , May 등)   h 시간을 12시간제로 출력 (두자리 숫자로 출력)
F 월을 완전한 영문자로 출력   G 시간을 24시간제로 출력 (한자리 숫자로 출력)
m 월을 두자리 숫자로 출력   H 시간을 24시간제로 출력 (두자리 숫자로 출력)
n 한자리 월일경우에는 한자리로 출력   a am pm 출력
d 일자를 두자리 숫자로 출력   A AM PM 출력
j 일자 출력. 1~9까지는 한자리로 출력   i 분을 두자리로 출력
l 완전한 영문자로 요일 출력   s 초를 두자리로 출력
D 요일을 세자리 영문자로 출력   t 해당월의 총 일수 출력
 
 
- mktime(시 , 분 , 초 , 월 , 일 , 년) 지정한 시간의 UNIX 시간을 알아옵니다.
- checkdate(월 , 일 , 년) 지정한 날이 맞으면 true 틀리면 false 값 반환.
- md5("문자") 문자열을 암호화 합니다.

 
 정규표현식에 대해서 알아봅니다.  
 
^ : 처음에 바로 뒤의 문자열로 시작  ereg("^abcd",$str) ex. abcdef , abcdgggg
$ : 마지막에 바로 앞의 문자열로 끝 ereg("abcd$",$str) ex. parkabcd , adjiabcd 
. : 임의의 한 문자. ereg("a.d",$str) ex. acd , afd , psafd , fswapd
? : 없거나 하나인 문자 ereg("ab?c",$str) ex. c , abc
+ : 최소한 하나이상인 문자 ereg("ab+c",$str) ex. abc , ababc , abababc
* : 없거나 그 이상인 문자 ereg("ab*c",$str) ex. c , abc , ababc
{} : 개수  ereg("a{2,4}c",$str) ex. a가 2개에서 4개 사이
[] : [ ] 안의 문자열 중에서 하나. ereg("a[bcd]",$str) ex. ab , ac , ad 
[^] : [^문자]를 제외한 나머지 a[^0-9] a 다음에 숫자를 제외한 문자이면 참
() : 그룹화. ( ) 안의 문자를 그룹화 ereg("ab(cd){2}e",$str) ex. abcdcde
[[:alpha:]] : 알파벳문자중 하나. [a-zA-Z] 와 동일
[[:digit:]] : 숫자 [0-9] 와 동일
[[:alnum:]] : 모든 숫자와 문자 [a-zA-Z0-9] 와 동일
[[:space:]] : 공백문자

$string = "by viewing these pages";
$res = eregi_replace("(t[[:alpha:]]+) ([a-z]+s$)","
\\1",$string);
$res2 = eregi_replace("(t[[:alpha:]]+) ([a-z]+s$)","
\\2",$string);
 
- eregi("찾을 단어" , "문자열") 찾을 단어가 있으면 true , 없으면 false
- eregi_replace("찾을단어" , "바꿀문자열" , 문자열);

 
 정규표현식을 이용한 자동링크 및 이메일 체크하기 
 
ex. 홈페이지 URL 자동으로 링크 시키기
eregi_replace("
http://([-/.a-zA-Z0-9_~#%$?&=]+)" , " http://\\1>" , "$list[content]");

ex. e-mail 자동으로 메일 링크 시키기
eregi_replace("(([_a-zA-Z0-9]+)@([-.a-zA-Z0-9]+))" , "
\\1" , $email);

ex. e-mail 올바른지 체크하기.
$a = ereg("^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+ (\.[0-9a-zA-Z-]+)*$",$email);
if($a) { echo "올바른 이메일 주소입니다."; }
 

 
 PHP 로 파일을 다루어봅니다.  
 
$파일포인터 = fopen("파일명" , "모드" ); : 파일을 특정모드로 엽니다.
fclose($파일포인터) : 열었던 파일을 종료하고 닫습니다.
 
※ 파일열기 모드의 종류
r : 읽기. 파일을 읽기 전용모드로 엽니다.
r+ : 읽기 쓰기. 파일의 맨 처음 부분에 쓰기를 합니다.
w : 쓰기. 존재하는 파일을 덮어쓰며 파일이 없으면 생성합니다.
a : 추가. 파일의 맨 마지막 지점에 쓰여지며, 파일이 없으면 생성합니다.
a+ : 읽기 추가. 파일 맨 마지막 지점에 쓰여지며, 파일이 없으면 생성합니다.
 
 
file_exists(" 파일명 ") : 파일이 존재하는지 알아옵니다. 존재하면 true
filesize(" 파일명 ") : 파일의 크기를 알아냅니다. (byte 단위로 값을 출력)
fwrite("파일포인터" , "문자열") : 열었던 파일안에 문자열을 씁니다.
fread("파일포인터" , "길이" ) : 열었던 파일에서 길이만큼 읽어옵니다.
copy( 원본 , 복사본 ) : 파일 원본을 복사본의 이름으로 카피합니다.
unlink(" 파일명 ")  : 파일명을 삭제합니다.

 
 디렉토리 관련 함수  
 
$디렉토리핸들 = opendir("경로") : 경로에 해당하는 디렉토리를 엽니다.
readdir(디렉토리 핸들) : 디렉토리안의 내용을 읽어옵니다.
closedir(디렉토리 핸들) : 열었던 디렉토리를 닫습니다.
ex.
$dir = opendir(" ../public_html ");
while($list = readdir($dir)) { echo " $list
"; }
closedir($dir); 
 

 
 외부명령어 실행하기 (리눅스 명령어 사용하기)  
 
- system(" 사용할 명령어" ,"결과를 담을 변수");
ex. system("df" , $list); -> $list 변수에 df 에 해당하는 결과가 저장된다.

- exec(" 사용할 명령어" , "결과 배열" , "결과값");
ex. exec("df" , $list , $result)

 
 쿠키와 세션 (COOKIE & SESSION)  
 
1. 쿠키 (COOKIE)
- 서버가 필요한 정보를 사용자 시스템에 값을 저장. (4kyte 내외로 저장이 됩니다.)
- setcookie 함수가 호출되기 전에는 어떠한 html 코드나 실행결과도 먼저 출력되어서는 안됩니다.
[형식] setcookie("변수명" , "변수값" , "지속시간" , path , domain , 보안);
ex. setcookie("zioclub_id" , "my_family" , time()+3600);   -> 1시간동안 쿠키 유지.
- 변수명 , 변수값 , 지속시간 값의 3개만 주로 할당하여 사용합니다.
- 쿠키를 작성후 페이지를 새로고침을 한번 해주어야 쿠키변수값이 적용됩니다.

2. 세션 (SESSION)
- 서버가 필요한 정보를 서버에 저장.
- 사용자 pc 에 세션 아이디를 저장하고 서버의 파일과 비교해서 판단.
session_start()  : 세션을 시작합니다. 항상 첫줄에 사용합니다.
session_register("변수명") : 변수명을 세션변수로 등록합니다.
session_unregister("변수명") : 특정 변수명을 세션변수에서 삭제합니다.
session_unset() : 세션으로 등록한 모든 변수를 삭제합니다.
 

 
 기타 유용한 PHP 함수  
 
- getenv("remote_addr") 접속자의 IP 주소 출력
- show_source("파일명") 파일의 source code 를 그대로 출력합니다.
- mail(받는이 , 제목 , 내용 , 메일헤더)

 
 PHP 에서 지원하는 MySQL API 함수에 대해서 알아봅니다. 
 
 접속구분자 = mysql_connect(" 호스트명 " , "유저아이디" , "패스워드" );

 : MySQL 서버에 접속을 합니다. 

 mysql_close(접속구분자);  : 접속을 종료합니다.
 mysql_select_db(데이터베이스이름 , 접속구분자); : 사용할 데이터베이스를 선택합니다.
 질의 구분자 = mysql_query("MySQL 질의문" , 접속구분자); : 질의문을 작성합니다.
 mysql_num_rows(질의 구분자) : 질의 결과 레코드의 갯수를 출력합니다.
 mysql_result(질의구분자 , 열 , 필드) : 특정 열과 필드의 내용을 출력합니다.
 mysql_fetch_row(질의구분자) : 질의결과값을 배열의 형태로 출력합니다.
 mysql_fetch_array(질의구분자) : 연관배열의 형태로 출력합니다.
 mysql_data_seek(질위구분자 , 열번호) : 해당 열번호부터 출력합니다.
 mysql_list_tables(데이터베이스명 , 접속구분자) : 해당 데이터베이스의 테이블명 출력.
 mysql_errno(); : MySQL 에러번호를 출력합니다.
 mysql_error(); : MySSQL 에러내용을 출력합니다.