Contents

Develop
2013.04.23 15:19

[php] 자주 쓰는 PHP 함수와 예제

조회 수 9702 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

누군가가 PHP에서 자주 쓰이는 함수를 정리한 것을 다시 정리했다.

PHP를 처음 배우는 사람들에게 요긴하게 쓰일 수 있을 것이다 ㅋㅋㅋ



##############################################

날짜 및 시간관련함수 정리

함수명 : 기능 설명 & 사용 예

##############################################

checkdate : 주어진 날짜 및 시간이 타당한지를 검사한다.

date : 주어진 옵션에 따른 포맷으로 시간, 날짜를 출력한다.

strftime : 해당 locale을 기준으로 주어진 옵션에 따른 포맷으로 시간, 날짜를 출력한다. date() 함수와 동일

mktime : 특정 날짜 및 시간에 해당하는 유닉스 시간(초 단위)을 얻는다.

time : 현재의 시간에 해당하는 유닉스 시간을 얻는다. 현재시간의 timestamp값을 출력한다.

getdate : 날짜 및 시간 정보를 연관 배열의 형태로 얻는다.


사용 예)

$res = checkdate(2, 29, 2000);

// (초,분,시간,월,일,년도)
$res = mktime(23, 15, 23, 1, 21, 1999);

$str = date('년도출력 - Y 또는 y', $res);




##############################################

date() 함수의 출력 포맷 옵션

출력형식 : 기능 설명 & 사용 예

#############################################

Y : 연도를 네 자리수로 출력한다. : 1999

y : 연도를 두 자리수로 출력한다. : 99

M : 월을 세 자리 영문자로 출력한다. : jan

m : 월을 두 자리수로 출력한다. : 01-12

F : 월을 완전한 영문자로 출력한다. : january

d : 일자를 두 자리수로 출력한다. : 01-31 

j : 일자를 출력하는데 10일 이하는 한 자리수로 출력한다. : 1-9,10-31

l : 완전한 영문자로 요일을 출력한다. : friday

w : 요일을 한자리 숫자로 출력한다. : 일(0), 월(1), 화(2), 수(3), 목(4), 금(5), 토(6)

D : 세 자리수 영문자로 요일을 출력한다. : Fri

H : 시간을 24시간제로 출력한다. : 23

h : 시간을 12시간제(오전,오후)로 출력한다. : 11

a : am 이나 pm 으로출력한다. :

A : AM 이나 PM 으로 출력한다. :

i : 분을 출력한다. :

s : 초를 출력한다. :

z : 그해의 몇 번째 일수인지를 출력한다. 이 값은 0부터 시작하므로 :

     윤년이 아닌 경우의 12월 31일은 264(wmr,365일째)로 출력한다. :




##############################################

strtime() 함수의 출력 포맷 옵션

포맷옵션 : 기능 설명 & 사용 예

##############################################

%Y : 연도를 네 자리수로 출력한다.

%y : 연도를 두 자리수로 출력한다.

%B : 현재의 locale에 따른 월명을 완전한 이름으로 출력한다.

%b : 현재의 locale에 따른 월명을 축약하여 출력한다.

%d : 일자를 두 자리수로 출력한다.

%a : 현재의 locale에 따른 요일명을 축약하여 출력한다.

%A : 현재의 locale에 따른 요일명을 완전한 문자로 출력한다.

%w : 요일명을 한자리 수자로 출력한다.

%H : 시간을 24시간제로 출력한다.

%l : 시간을 12시간제(오전,오후)로 출력한다.

%M : 분을 출력한다.

%S : 초를 출력한다.

%Z : 현재의 타임존(timezone)을 출력한다.

%x : 현재의 locale에 따는 날짜(월/일/년)를 출력한다.

%X : 현재의 locale에 따른 시간(시/분/초)을 출력한다.

%U : 1.올해 몇 번째 주가 지났는지를 출력한다.

           2.첫 주의 첫 날로 첫 번째 일요일을 기준 시간으로 한다.

%W : 1.얼헤 몇 번때 주가 지났는지를 출력한다.

            2.첫 주의 첫 날로 첫 번째 일요일을 기준 시간으로 한다.




##############################################

grtdate() 함수의 참조키

참조키 : 내용 설명 & 사용 예

##############################################

"second" : 시간(초)

"minutes" : 시간(분)

"hours" : 시간(시)

"mday" : 일자

"wday" : 요일 (숫자 형태로 출력)

"mon" : 월

"year" : 년도

"yday" : 1년 365일 중 며칠째인가를 출력

"weekday" : 요일 (영문자 전체로 출력)

"month" : 월(영문자 전체로 출력)


예) 날짜관련 함수 사용 예

<?
    $timeinfo = getdate(time());
    while(list($key,$val) = each($timeinfo)) {
        echo ("$key - $val");
    }
    echo $timeinfo["year"];
?>




##############################################

문자열 처리함수

함수명 : 기능 설명 & 사용 예

##############################################

addslashes : 작은 따옴표(')와 큰 따옴표(),역슬래시(\)와 같은 특정 문자 알에 역슬래시(\)문자를 붙인다.

stripslashes : addslashes() 함수를 통해 역슬래시 처리가된 문자를 원 상태로 되돌린다. 

htmlspecialchars : HTML 코드를 문자열 소스 그대로 출력한다.

n12br : 문자열 개행문자를 <BR> 태그로 치환한다.

echo : 인자로 전해준 문자열을 출력한다.

sprintf : 문자열을 지정해준 포맷으로 바꾸어 반환한다.

printf() : 지정할 수 있는 포맷에 따라 문자열을 출력하며 사용 가능한 포맷은 sprintf()의 경우와 같다.

explode : 문자열을 구분자로 나누어 배열에 저장한다.

implode : 배열의 각 원소를 구분자로 연결한 전체 문자열을 반환한다.

join : implode함수와 동일한 기능을 수행한다.

split : 문자열을 정규 표현식에 의한 구분자로 나누어 배열에 저장한다.

strcmp : 두 개의 문자열을 비교한다.

substr : 문자열의 일부를 추출한다.

strchr : 검색 대상 문자열에서 찾고자 하는 문자열이 처음으로 나타나는 위치 이후의 문자열을 반환한다.

atrrchr : 검색 대상 문자열에서 찾고자 하는 문자열이 마지막으로 나타나는 위치 이후의 문자열을 반환한다.

strpos : 검색 대상 문자열에서 찾고자 하는 문자열이 처음으로 나타나는 위치를 숫자로 반환한다.

strrpos : 검색 대상 문자열에서 찾고자 하는 문자가 마지막으로 나타나는 위치를 숫자로 반환한다.

strlen : 문자열의 길이(byte)를 반환한다. 한글은 2byte로 계산한다.

strtolower : 알파벳으로 된 문자열을 소문자로 변환한다.

stroupper : 알파벳으로 된 문자열을 소문자로 변환한다.

ucfirst : 알파벳 문자열의 첫글자를 대문자로 변환한다.

ucwords : 알파벳 문자열내 모든 단어의 첫글자를 대문자로 변환한다.

strrev : 문자열의 순서를 정반대로 바꾼다. 문자열의 순서를 역전.

strtr : 대상 문자열의 각 문자를 검색하여 지정한 문자로 가각 치환한다.

           strtr ( string str, string from, string to );

str_replace : 대상 문자열 haystack에서 needle 문자열을 str 문자열로 바꾸어 전체 문자열을 반환한다.

           str_replace ( string needle, string str, string haystack );

[참고] strtr 함수가 대상 문자열에 대해 호출시 지정한 두 문자열의 문자를 1:1로 치환하는데 반해 str_replace() 함수는 이름 그대로 대상 문자열에서 지정한 문자열을 찾아 다른 문자열로 바꿀때 호출한다.

chop : 문자열의 뒷 부분에 있는 공백 문자를 제거한 문자열을 반환한다.

trim : 문자열 앞과 뒤에 있는 공백 문자를 제거한 문자열을 반환한다.

quotemeta : 메타 문자 앞에 역슬래시(\) 문자를 덧붙인다.

org : 인자로 전달된 문자열의 첫 번째 문자에 대한 ASCII 코드값을 반환한다.

chr : 인자로 전달된 ASCII 코드값에 해당하는 문자를 반환한다.

parse_str : URL을 통해 전달되는 문자열을 파싱하여 변수를 설정한다.

GET방식과 같이 URL을 통해 전달되는 puery string을 파싱하여 변수와 값을 설정한다.

(파싱 : 문법을 가지는 문자열을 문법의 하부 요소들로 나누어 요소들로 이루어진 트리를 만드는 과정.)

(토크나이징 : 문자열을 특별한 문자를 기준으로 삼아 그 문자로 구분된 각 구절로 나누는 작업.)



nl2br() 함수의 사용 예

<?
    echo("[n12br() 함수 호출전]");
    echo("$comment<p>");
 
    $res = n12br($comment);
 
    echo("[n12br() 함수 호출후]");
    echo("$res");
?>



sprintf() 함수의 사용 예

<?
    $a = 18.2;
    $b - 7.4;
 
    $sum = $a + $b; //$sum = 25.6
    $ext = $a - $b; //$ext = 10.8
 
    $res = sprintf("%d", $sum);
    echo("$res"); // =25
 
    $res = sprintf("%f", $sum);
    echo("$res"); // =25.600000
 
    $res = sprintf("%04d", $sum);
    echo("$res"); // =0025
 
    $res = sprintf("%04.2f", $sum);
    echo("$res"); // =0025.60000
 
    $res = sprintf("%03.2f - %0.2f", $sum,$ext);
    echo("$res"); // =025.60 - 10.80
 
    $res = sprintf("%d-%C", 97,97); // =97 - a
    echo("$res");
?>



printf() 함수의 사용 예

<?
1-603+0    $a = 18.2:
    $b = 7.4;
 
    $sum = $a + $b;
    printf("%02.2f 와 %02.2f의 합은 정수값으로 %'x4d입니다.!", $a,$b,$sum);
    /*18.20와 07.40의 합은 정수값으로 xx25입니다.!*/
?>



explode() 함수의 사용 예

<?
    $string = "one two three four five";
    $arr = explode(" ",$string);
    while(list($key,$val) = each($arr)) {
        echo("\$arr[$key] : $val");
    }
?>

결과

$srr[0] : one

$srr[1] : two

$srr[2] : three

$srr[3] : four

$srr[4] : five



implode() = join() 둘이 같은 기능을 한다.

<?
    $arr = array("one","two","three");
    $res = implode("/",$arr);
    echo("$res"); //결과 one/two/three
?>



split() 함수의 사용 예

<?
    $str = "이완철:김여아:길현수:박현영";
    $arr = split(":", $str,3);
    $while(list($key,$val) = each($arr)) {
        echo("\$arr[$key] : $val");
    }
    echo("<P>");
    $str = "이완철92김여아91길현수87박현영97";
    $arr = split("[0-9]{2}", $str);
 
    while(list($key,$val) = each($arr)) {
        echo("\$arr[$key] : $val");
    }
?>


결과

$arr[0] = 이완철

$srr[1] = 김영아

$srr[2] = 길현수:박현영


$srr[0] = 이완철

$srr[1] = 김영아

$srr[2] = 길현수

$srr[3] = 박현영

$srr[4] = 



substr() 함수의 사용 예

<?
    $res=substr("abcdefg",1);
    echo("$res"); //bcdefg
 
    $res=substr("abcdefg",1,3);
    echo("$res"); //bcd
 
    $res=substr("abcdefg",-3);
    echo("$res"); //efg
 
    $res=substr("abcdefg",-3,2);
    echo("$res"); //ef
?>



strchr() = strstr() 동일한 기능을하는 함수

<?
    $str1 = "abcdefghijklmn";
    $res = strchr($str,"j");
    echo("res : $res"); // "jklmn"을 반환한다.
 
    $res = strchr($str1,"jm");
    echo("res : $res"); //false를 반환한다.
?>



strrchr() 함수의 사용 예

<?
    printf("%d -> %c, 10, 10); //숫자 10은 개행문자 (\n)
    $text = "line 1\nline 2\nline 3";
 
    $str = strrchr($text,10); //"\nline 3"을 반환
    echo("str :$str");
 
    $last = substr( strrchr( $text, 10),1); //"line 3"을 반환
    echo("$last - ");
?>



strpos() 함수의 사용예 : 숫자를 반환

<?
    $str = "AaBbCcDdAaBb";
 
    $res = strpos($str,"C");
    echo("res : $res"); // 4를 출력한다.
 
    $res = strchr($str,"C");
    echo("res : $res"); // CcDdAaBb 를 출력한다.
 
    $res = strpos($str,97);
    echo("res : $res"); //97은 ASCI코드로 a를 나타낸다. 결과값은 1.
 
    $res = strpos($str,"C",5);
    echo("res : $res"); //5는 5번째열부터 찾는 옵션이다. 결과값은 :false
?>



strlen() 함수의 사용 예

<?
    $str = "abcd";
    $res = strlen($str);
    echo("res : $res"); //결과물은 4가된다.
?>



strrev() 함수의 사용 예

<?
    $str = "abcd";
 
    $res = strrev($str);
    echo("$res"); //결과물은 dcba 가 된다.
?>



quotemeta() 함수 사용 예

<?
    $str = "meta character : . \\ + ? [ ^ ] ( $ )";
    $res = quotemeta($str);
    echo("$res"); //결과값은: "meta character : \. \\ \+ \? \[ \^ \] \( \$ \)"
?>



org() 함수와 chr() 함수의 사용 예

org(string string)함수는 문자열 string의 첫 번째 문자에 대한 Ascii코드값을 반환한다.

chr(int ascii)함수는 ascii 코드값에 해당하는 문자를 반환한다.

<?
    $str = "aspell";
 
    $res = org($str);
    echo("$res"); //결과는 97
 
    $res = chr($res);
    echo("$res"); //결과는 'a'
?>



##############################################

parse_str() 함수의 사용 예

parse_str(string str) : GET방식과 같이 URL을 통해 전달되는 puery string을 파싱하여 변수와 값을 설정한다.

(파싱 : 문법을 가지는 문자열을 문법의 하부 요소들로 나누어 요소들로 이루어진 트리를 만드는 과정.)

(토크나이징 : 문자열을 특별한 문자를 기준으로 삼아 그 문자로 구분된 각 구절로 나누는 작업.)

<?
    $str = "page_num=1&key=php4&keyword=subject";
    parse_str($str);
 
    echo("page_num : $pase_num"); //"page_num : 1"
    echo("key : $key"); //"key : php4"
    echo("keyword : $keyword"); //"keyword : subject"
?>



##############################################

파일 처리 관련 함수

함수명 : 기능 설명 & 사용 예

##############################################

fopen : 지정한 파일을 연다.

fcloss : fopen()으로 연 파일을 닫는다.

fread : 파일에서 특정 byte수만큼을 읽어들여 문자열로 반환한다.

fwrite : 파일에 특정 byte수만큼을 쓴다.

feof : 파일 포인터의 위치가 파일의 끝인지를 검사한다.

fgets : 지정한 파일에서 개행 문자나 EOF를 만나기 전까지 특정 byte수만큼 읽어드린다.

fputs : 파일에서 특정 byte수만큼을 읽어들여 문자열로 반환한다.

fpassthru : 파일 포인터가 가리키는 현재의 위치에서 파일의 끝(EOF)까지를 읽어들여 표준 출력 장치로 출력한다.

readfile : 파일을 읽어 표준 출력 장치에 출력한다.

fgetc : 파일로부터 한 문자를 읽어들인다.

filesize : 파일의 크기를 byte수로 반환한다. 

file_exists : 파일이 존재하는지를 검사한다.

is_file : 정상적인 파일인지를 검사한다.

is_dir : 디렉토리인지를 검사한다.

is_link : 심볼릭 링크인지를 검사한다.

is_executable : 실행 가능한 파일인지를 검사한다.

is_readable : 읽기 가능한 파일인지를 검사한다.

is_writeable : 쓰기 가능한 파일인지를 검사한다.

copy : 파일을 복사한다. 복사가 제대로 수행될 경우 true를 반환한다.

rename : 파일의 이름을 바꾼다. 제대로 수행될경우 true를 반환한다.

unlink : 파일을 삭제한다. 제대로 수행될경우 true를 반환한다.

mkdir : 디렉토리를 생성한다.

               mkdir(string pathname, int mode) 추가 인자를 통해 퍼미션을 지정할 수 있다.

              제대로 수행될경우 true를 반환한다.

rmdir : 지정한 디렉토리를 삭제한다. 이때 이렉토리는 비어 있어야 한다.

basename : 파일에 대한 경로명 중 확장자를 포함한 파일 이름만을 반환한다.

dirname : 파일 대한 경로명 중 디렉토리명만을 반환한다.

file : 파일을 줄 단위로 읽어서 각 줄의 문자열을 배열 원소로 하는 배열로 반환한다. 그 외에는 readfile() 함수와 동일하다.

filesize : 파일의 크기를 byte수로 반환한다.

file_exits : filename으로 전해준 이름이 존재하는지 검사하여 존재하면 true를 반환한다.

is_file : filename으로 전해준 이름이 정상적인 파일일 경우 true를 반환한다.

is_dir : filename으로 전해준 이름이 디렉토리일 경우 true를 반환한다.

is_link : filename으로 전해준 이름이 symbolic link일 경우 true를 반환한다.

is_executable : filename으로 전해준 이름이 실행 가능한 파일일 경우 true를 반환한다.

is_readable : filename으로 전해준 이름이 읽기 가능한 파일일 경우 true를 반환한다.

is_writeable : filename으로 전해준 이름이 쓰기 가능한 파일일 겨우 true를 반환한다.




fopen() 함수의 추가 설명

모드 : 기능 설명 & 사용 예

##############################################

'r' : 파일을 읽기 모드로 연다. 팡리 포인터는 해당 파일의 처음에 위치하게 된다.

'r+' : 파일을 읽기와 쓰기 모드로 연다. 파일 포인터는 해당 파일의 처음에 위치하게 된다.

'w' : 파일을 쓰기 모드로 연다. 해당 파일이 이미 존재하면 덮어 씌우고 없으면 새로 만든다. 

파일 포인터는해당 파일의 처음에 위치하게 된다.

'w+' : 파일을 읽기와 쓰기 모드로 연다. 해당 파일이 이미 존재하면 덮어 씌우고 없으면 새로 만든다. 

파일 포인터는 해당 파일의 처음에 위치하게 된다.

'a' : 파일을 쓰기 모드로 연다. 해당 파일이 존재하지 않으면 새로 만들며,

파일의 포인터는 해당 파일의 마지막에 위치하게 된다.

'a+' : 파일을 읽기 및 쓰기 모드로 연다. 해당 파일이 존재하지 않으면 새로 만들며 파일의 포인터는 

해당 파일의 마지막에 위치하게 된다.

##############################################


'r' 이나 'r+' 모드는 불러들이고자 하는 파일이 이미 존재하고 있어야 하며 그렇지 않을 경우 에러를 발생시킨다. 

즉, 파일이 존재하지 않으면 더 이상 코드를 진행시킬 수가 없다.

그러나 'w' 나 'w+'모드는 불러들이고자 하는 파일이 존재하지 않더라도 에러를 발생시키지 않고 대신 

새로운 파일을 직접 생성한다. 이때 파일의 포인터는 해당 파일의 처음에 위치 한다.

한편 'a' 나 'a+'모드는 'w'나 'w+'모드와 마찬가지로 파일이 없을 경우 새로운 파일을 생성하나 대신 파일의 포인터는

해당 파일의 가장 마지막에 위치하게 된다. 

따라서 'a'나 'a+"모드는 기존의 파일에 새로운 내용을 추가하고자 할 때 쓴다.


fopen() 함수의 사용 예

<?
    $fp = fopen("/home/hooni/public_html/php/list.dat","r");
 
    if(!$fp) {
        echo("Failed to open the file");
    } else {
        echo("Succesfully opened the file!");
    }
 
    fclose($fp);
?>



위의 (사용 예)의 2행에서 파일 모드를 'r' 이나 "r+"모드로 주었을 경우 /home/hooni/public_html/php 디렉토리에 

list.dat라는 파일이 존재하지 않으면 위의 스크립트는 더 이상 실행되지 않는다.

그러나 'w' , 'w+' 나 'a' 'a+' 모드를 주었을 경우에 list.dat파일이 존재하지 않으면 파일을 직접 생성하며 파일의 포인터는 

'w' 'w+'의 경우 파일의 처음에, 'a' 'a+'의 경우에는 파일의 마지막에 위치한다. 

따라서 보통 읽기 모드로는 'r'을 ,쓰기모드로는 'w'를 추가하여 쓰기 모드로는 'a'라고 생각하면 된다.



fclose() 함수와 fread() 함수의 사용 예

fclose(int fp) : 파일 포인터의 파일을 닫는다.

fread(int fp,int legth) :파일에서 length byte만큼 읽어들여 문자열로 반환한다. 

<?
    $fp = fopen("/home/hooni/public_html/php/list.dat","r");
//He was in time for the last bus. "r"은 읽기모드입니다. if(!$fp) { echo("Failed to open the file"); } $contents = fread($fp,10); // 결과물: "He was in" echo("$contents"); fclose($fp); ?>



fwrite() 함수의 사용 예

fwrite() : fwrite(int fp,string string, int[length]); = fputs()

파일의 문자열을 (length 1)byte만큼 쓴다.

length를 지정해주지 않은 경우 지정해 준 string을 모두 파일에 쓴다.

<?
    $fp = fopen("/home/hooni/public_html/php/list.dat","a");
if(!$fp) { echo("Failed to open the file"); } $str = " It is of no importance"; fwrite($fp,$str); fclose($fp); ?>



feof() 함수와 fgets() 함수의 사용 예

feof(int fp)

파일 포인터가 파일의 끝 (EOF)이거나 에러가 발생하였을 경우 true를 반환하고,

그렇지 않을 경우에는 false를 반환한다.

fgets(int fp,int length) 

파일 포인터가 가리키는 파일에서 length-1 byte만큼 읽어들인다.

그러나 length-1 byte만큼 읽어들이기 전에 개행 문자나 EOF를 마날 경우 읽기를 중단한다.


fgets()함수를 호출하여 파일을 한 줄씩 읽어들인 후 그내용을 그대로 출력하는 예제이다.

<?
    $fp = fopen("/home/hooni/public.html/php/list.dat","r");
if(!$fp) { echo("Failed to open file"); } while(!feof($fp)) { //"EOF"일때까지 한줄씩 출력한다. $line = fgets($fp,10000); echo("$line"); } fclose($fp); ?>



fpassthru() 함수의 사용 예

fpassthru(int fp);

파일 포인터가 가리키는 현재의 위치에서 파일의끝(EOF)까지를 읽어들여 표준 출력 장치로 출력한다.

이 과정 중 에러가 발생하면 false를 반환한다. 이 함수는 파일 포인터가 가리키는 파일의 현재 위치에서 

파일의 끝까지를 읽어들여 표준 출력 장치에 출력한 후 해당 파일을 닫는 기능까지 스스로 한다. 

즉, fpassthru($fp)함수를 호출한후에 close($fp)와 같이 파일을 닫는 함수를 호출하면 이미 파일이 닫혀있으므로 에러가 발생한다.

<?
    $fp = fopen("/home/hooni/public_html/php/list.dat",r");
if(!$fp) { echo("Failed to open the file"); } $line = fgets($fp,10000); if(!feof($fp)) { fpassthru($fp); } //fclose($fp); ?>



readfile() 함수의 사용 예

readfile(string filename) : 파일을 읽어 표준출력장치로 출력한다.

<?
    $bytes = readfile("/home/hooni/public_html/php/list.dat");
echo("total size : $bytes bytes"); ?>


결과 :

He was in time for the last bus. He goes tj his office every other day. It is nearly six (o'clock)

total size : 100 bytes



fgetc() 함수의 사용 예

fgetc(int fp);

fgets()함수가 지정한 크기만큼의 문자열을 읽어들이는 것에 비해 fgetc() 함수는 파일 포인터가 가리키는 파일로부터 하나의 문자를 읽어들인다.

<?
    $fp = fopen(/home/hooni/public_html/php/list.dat","r");
if(!$fp) { echo("Failed to open the file"); if(!feof($fp)) { $chr = fgetc($fp); if(strcmp($chr,"\n")) { $chr .= ""; } } $line .= $chr; } echo("$line"); fclose($fp); ?>



filesize, file_exits, is_file, is_dir, is_link, is_executable, is_readable, is_writeable 함수의 사용 예

filesize(string filename) : 파일의 크기를 byte수로 반환한다.

file_exits(string filename) : filename으로 전해준 이름이 존재하는지 검사하여 존재하면 true를 반환한다.

is_file(string filename) : filename으로 전해준 이름이 정상적인 파일일 경우 true를 반환한다.

is_dir(string filename) : filename으로 전해준 이름이 디렉토리일 경우 true를 반환한다.

is_link(string filename) : filename으로 전해준 이름이 symbolic link일 경우 true를 반환한다.

is_executable(string filename) : filename으로 전해준 이름이 실행 가능한 파일일 경우 true를 반환한다.

is_readable(string filename) : filename으로 전해준 이름이 읽기 가능한 파일일 경우 true를 반환한다.

is_writeable(string filename) : filename으로 전해준 이름이 쓰기 가능한 파일일 겨우 true를 반환한다.

<?
    $filename = "/home/hooni/public_html/php/list.dat";
if(!file_exists($filename)) { echo("${filename} 파일이 존재하지 않습니다." ); exit; } if(!is_file($filename)) { echo("${filename} 은 파일이 아닙니다."); exit; } if(!is_dir($filename)) { echo("${filename} 은 디렉토리가 아닙니다."); exit; } if(!is_link($filename)) { echo("${filename} 은 심볼릭 링크가 아닙니다."); exit; } if(!is_readable($filename)) { echo("${filename} 은 읽을수 없는 파일입니다."); exit; } if(!is_writeable($filename)) { echo("${filename} 은 쓰기가 불가능한 파일입니다."); exit; } if(!is_executable($filename)) { echo("${filename} 은 실행불가능한 파일입니다."); exit; } ?>



copy() 함수의 사용 예

copy(string source, string dest)

<?
    $src = "/home/hooni/public_html/php/list.dat";
 
    if(!copy($src,"/home/hooni/public_html/php/backup.dat")) {
echo("Failed to copy $src file"); exit; } ?>



rename() 함수의 사용 예

rename(string oldman, string newname)

<?
    $src = "/home/hooni/public_html/php/list.dat";
if(!$rename($src, "/home/hooni/public_html/php/rename.dat")) {
echo("Failed to rename $src file"); exit; } ?>



unlink() 함수의 사용 예

unlink(string filename)

<?
    $src= "/home/hooni/public_html/php/list.dat";
      if(!file_exists($src)) {         echo("$src file does not exist!");         exit;     }       if(!$unlink($src)) {         echo("Failed to delete $src file");         exit;     } ?>



mkdir() 함수와 rmdir() 함수의 사용 예

mkdir(string pathname, int mode)

디렉토리를 생성할 때 mode 인자를 통해 생성과 함께 퍼미션을 지정할 수 있다.

rmdir(string dirname)

지정한 디렉토리를 삭제한다. 이때 이렉토리는 비어 있어야 한다.

<?
    $filename = "/home/hooni/public_html/php/temp";
if(!mkdir($dirname,0755)) { echo("Failed to create $dirname directory"); exit; } if(!$rmdir($filename)) { echo("Failed to remove $dirname directory"); exit; } ?>



basename() 함수와 dirname() 함수의 사용 예

basename(string path)

패스까지 포함한 파일의 전체 경로명을 인자로 받아 파일명만을 반환한다.

dirname(string path)

패스까지 포함한 파일의 전체 경로명을 인자로 받아 디렉토리명만을 반환한다.

<?
    $path = "/home/ftp/readme.txt";
    $base = basename($path);
    echo("$base");
 
    $dir = dirname($path);
    echo($dir);
?>



file() 함수의 사용 예

file(string filename) : 파일을 줄 단위로 읽어서 각 줄의 문자열을 배열 원소로 하는 배열로 반환한다. 

그 외에는 readfile() 함수와 동일하다.

<?
    $filename = "/home/hooni/public_html/php/list.dat";
$line = file($filename); while(list($key,$val) = each($line)) { echo("$val"); //list.dat의 모든내용을 출력한다. } ?>




#############################################

디렉토리 관련 함수

함수명 : 기능 설명 & 사용 예

##############################################

opendir : 지정한 디렉토리에 대한 핸들(handle)을 얻는다.

closedir : opendir()함수로 연 디렉토리에 대한 핸들을 닫는다.

readdir : 디렉토리의 파일 및 하부 디렉토리 이름을 읽어들여 목록의 형태로 반환한다.

rewinddir : 디렉토리 핸들을 처음 위치로 되감는다.

chdir : 디렉토리를 바꾼다.

dir : 디렉토리 클래스 객체를 생성한다.

#############################################



opendir(), closedir(), readdir() 함수들의 추가 설명과 사용 예

opendir(string path)

지정한 디렉토리를 열고 그 디렉토리에 대한 핸들을 얻는다. opendir() 함수의 결과로 얻어지는 핸들은 closedir()과 readdir() 함수 호출시에 인자로 사용된다.


closedir(int dir_handle)

opendir() 함수 호출로 연 디렉토리에 대한 핸들을 닫는다.


readdir(int dir_handle)

readdir() 함수는 이렉토리에 있는 모든 디렉토리 및 파일들의 이름을 읽어 배열의 형태로 반환한다.


"/home/hooni" 디렉토리에 있는 하부 디렉토리 및 파일들의 목록을 출력하는 예제

<?
    $dirhandle = opendir("/home/hooni");
$filename = readdir($dirhandle); echo("filename : $filename"); //"filename : ." $filename = readdir($dirhandle); echo("filename : $filename"); //"filename : .." $filename = readdir($dirhandle); echo("filename : $filename"); //"filename : KBackup-1_2_11-1_i386.rpm" $filename = readdir($dirhandle); echo("filename : $filename"); //"filename : KBackup-1_2_11.tar.gz" closedir($dirhandle); ?>


<예제 설명>

2행에서 /home/hooni 디렉토리에 대한 핸들을 얻고 이 핸들로 4행의 readdir() 함수를 호출하였다. 

그러면 4행의 실행 결과는 현재 핸들이 가리키는 이렉토리 안의 모든 파일들을 배열처럼 목록으로 만들고 

그 목록 중 가장 위에 있는 파일 이름 하나를 변수 $filename에 확당하게 된다.


7행에서 다시 readdir()함수를 한번 더 호출하게 되면 변수 $filename에는 목록에서 그 다음 위치에 있는 파일 이름이 저장되며 

이와 같이 목록의 끝에 도달할 때까지 함수를 반복하여 초출하게 되면 해당 디렉토리 내 모든 파일과 디렉토리를 출력할 수 있게 된다.


따라서 while문을 이용하여 더 이상 목록에 파일 이름이 없을 때까지 readdir()함수를 반복 호출함으로써 

디렉토리 내 모든 파일의 이름을 출력할 수 있다.

<?
    $dirhandle = opendir("/home/hooni");
while($filename = readdir($dirhandle)) { echo("filename : $filename"); } closedir($dirhandle); ?>



rewinddir() 함수의 사용 예

rewinddir(int dir_handle) : 디렉토리 핸들의 위치를 처음 위치로 되돌린다.

앞서 readdir()함수를 호출할때마다 파일 목록에서 함수의 호출 결과로 반한되는 파일의 이름,

즉 목록에서 가장 위에 존재하는 파일의 이름이 바뀌는 것을 보았다. 이rewinddir()함수는 바로 

그 목록의 순서를 처음의 상태로 되돌리는 역활을 하는 함수이다.

<?
    $dirhandle = opendir("/home/hooni");
while($filename = readdir($dirhandle)) { echo("filename : $filename"); //파일의 목록이 출력된다. } $filename - readdir($dirhandle) ; //핸들이 마지막까지 다 돌아갔기 때문에 아무런 출력값도 없다. echo("filename : $filename"); rewinddir($dirhandle); //핸들을 다시 처음으로 되돌리다. while($filename = readdir($dirhandle)) { //다시 파일목록이 출력된다. echo("filename : $filename"); } closedir($dirhandle); //핸들을 닫는다. ?>



chdir(), dir(), read(), rewind(), close() 함수의 사용 예

chdir(string directory);

디렉토리를 지정한 디렉토리로 바꾼다. 제대로 실행되지 않을 경우 false를 반환한다.

dir(string directory);

앞서의 디렉토리 관련 함수를 그 메쏘드(methode)로 갖는 디렉토리 클래스이다. 

이 클래스를 통해 디렉토리 객체를 생성하면 해당 객체는 자동적으로 두 개의 속성이 얻어지는데 하나는 디렉토리 핸들(handle)이고, 다른 하나는 디렉토리 경로명(path)이다 dir()클래스의 객체를 생성하면 객체가 갖는 이 두개의 속성을 이용해 앞에서 나온readdir(),rewinddir(),closedir() 함수와 동일한 기능을 수행하는 세 개의 메쏘드 

read(), rewind(), close()를 하용할 수 있게 된다.

<?
    $mydir = dir("/home/hooni");
echo("Current directory : $mydir->path"); //Current directory : /homr/hooni
while($filename = $mydir->read()) { echo("$filename\n"); } $mydir->rewind(); echo("Current directory : $mydir->path"); while ($filename = $mydir->read()) { echoL("$filename\n"); } $mydir->close(); ?>


<예제 설명>

예제중 3행은 dir()클래스로 $mydir이라는 객체를 생성한다. 그러면 $mydir이라는 객체는 두 개의 속성 handle과 path를 가지게 되며 각각 $mydir->handle과 $mydir->path를 통해 접근할 수 있다.

결국 위 예제에서 $mydir->handle은/home/hooni 디렉토리에 대한 핸들이 되고 5행에서 $mydir->path는 그 핸들이 가리키는 디렉토리에 대한 경로명(/home/hooni)을 값으로 갖게 된다.


클래스를 이용한 객체를 생성하게 되면 6행의 $mydir->read(),10행의 $mydir->rewinddir(),17행의 $mydil->close()처럼 $mydir 객체가가진 세 개의 메쏘드를 디렉토리 함수대신 이용할 수 있게 된다.




?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18413
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16385
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21247
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16485
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 11372
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15950
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 935
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21966
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 732
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 974
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98