제3장 PHP에서 꼭 알아두어야 할 함수
12. 기타 PHP 함수
getenv
함수
getenv() 함수의 정의는 다음과
같다.
|
string getenv(string varname);
환경 변수의 값을 반환한다. 실패시에는 false를 반환한다.
|
PHP에서 참고할 수 있는 주요 환경 변수로는 다음과 같은 것들이
있다.
|
환경 변수
이름 |
기능 |
|
SERVER_SOFTWARE |
웹서버의 이름과 버전 |
|
SERVER_NAME |
서버의
호스트 이름 또는 IP 어드레스 |
|
GATEWAY_INTERFACE |
서버의
CGI 타입과 개정 레벨을 나타낸다. (예:CGI/1.1) |
|
SERVER_PROTOCOL |
서버의
프로토콜, 보통 HTTP/1.0 이나 HTTP/1.1에 해당 |
|
SERVER_PORT |
클라이언트 요청을 보내는 포트 번호, 보통 80번 Port |
|
REQUEST_METHOD |
CGI에서 데이터를 전송하는 방법으로 GET인 POST |
|
PATH_INFO |
스크립트에 대한 경로 정보 |
|
PATH_TRANSLATED |
PATH_INFO 경로를 실제 물리적 경로로 표시한 것 |
|
SCRIPT_NAME |
현재
실행중인 스크립트의 파일 이름 |
|
QUERY_STRING |
GET
이나 POST 방식을 통해 전달된 값을 저장 |
|
REMOTE_ADDR |
스크립트 실행을 요청한 클라이언트의 IP 주소 |
|
REMOTE_HOST |
스크립트 실행을 요청한 클라이언트의 호스트 이름 |
|
CONTENT_LENGTH |
POST 방식을 통해 전달되는 입력 정보의 길이를 표시 |
|
HTTP_USER_AGENT |
스크립트 실행을 요청한 브라우저의 종류 및 버전을 표시 |
getlastmod
함수
getlastmod() 함수의 정의는 다음과
같다.
|
int getlastmod(void);
현재 문서가 최종적으로 수정된 시간을 유닉스 시간, 즉 timestamp으로 반환한다. 따라서 date() 함수를
이용하여 원하는 포맷으로 날짜를 출력할 수 있다.
|
보통 HTML과 같은 문서의 최종 변경, 수정일을 표시하기 위해서
SSI(Server Side Include)를 사용한다. 그러나 PHP에서는 getlastmod() 함수를 이용하면 쉽게 문서의 최종 변경일을
얻을 수 있다. 다음을 참조하라.
|
<?
$time = getlastmod();
$modified_str = date('Y-m-d H:i:s',$time);
echo("Last modified: $modified_str");
?>
|
phpinfo
함수
phpinfo() 함수의 정의는 다음과
같다.
|
int phpinfo(void)
웹서버에 설치되어 있는 PHP에 관한 정보를 출력한다.
|
mail
함수
mail() 함수의 정의는 다음과
같다.
|
bool mail(string to, string sbuject, stering message, string
additional_headers);
지정한 이메일 주소로 전자우편을 발송한다.
|
mail() 함수에서 첫 번째 인자(새)는 받을 사람의 이메일 주소 두
번째 인자(subject)는 메시지 제목, 세 번째 인자(message)는 메시지 내용, 네 번째 인자는 추가 헤더 정보이다. 네 번째 인자는
생략 가능하며 보통은 앞의 세 인자를 넘겨 mail() 함수를 호출하면 메일을 전송할 수
있다.
|
<?
$mailto = "dustine@jungle.ac.kr";
$subject = "A New Message Posted to BBS";
$contents = "Hello? This is message using mail() function
call";
mail($mailto, $subject, $contents);
?>
|
위의 6행에서와 같이 mail() 함수를 호출하면
"dustine@jungle.ac.kr"의 이메일 주소로 제목이 "A New Message Posted to BBS:이고 내용이 "Hello?
This is message using mail() function call" 인 전자우편이 발송된다. 한편 위의 6행에서 보내는 사람에 대한
정보를 별도로 설정해주지 않을 경우에는 기본적으로 웹서버 프로세스의 사용자(보통 Nobody)가 보내는 사람으로
설정된다.
만일 보내는 사람을 특정한 이메일 주소로 지정해 주고자 하면 mail()
함수의 네 번째 인자로서 추가적인 헤더 정보를 전달해야 한다. 또한 메일을 HTML 형식으로 보내고자 할 때에도 이 네 번째 인자에 추가 정보를
전달해야 한다.
다음의 예를
보자
|
<?
$mailto = "dustine@jungle.ac.kr";
$subject = "A New Message Posted to BBS";
$contents = "<a href=\"http://safelab.skku.ac.kr\">Hello? This is
message using mail() function call</a>";
$add_header = "From: webmaster@nppsafe.skku.ac.kr\n";
$add_header .= "Reply-To: jcafe@nppsafe.skku.ac.kr\n";
$add_header .= "Content-Type: text/html;charset=EUC-KR";
mail($mailto, $subject, $contents,$add_header);
?>
|
위의 4행에서 보낼 메시지로 HTML 구문을 지정해 주었다. 이제 이
메일을 상대편이 보았을 때 "Hello? This is message using mail() function call" 이라는 하이퍼링크로 볼
수 있도록 하려면 네 번째 인자로 이 메일의 형식이 HTML 형식이라는 것을 알려주어야
한다.
7행의 "Content-Type:
text/html;charset=EUC-KR"이 바로 그러한 정보를 전달하는 헤더이다. 5~7행을 보면 보내는 사람 주소와 회신주소, 메일형의
세 가지에 대한 헤더 정보가 함께 전달되는데 이와 같이 여러 개의 헤더 정보를 함께 보낼 때에는 각 헤더를 개행 문자('\n')로 구분하여야
한다. 보내는 사람은 5행에서와 같이 "From : 보내는 사람"으로 지정할 수 있다.
die
함수
die() 함수의 정의는 다음과
같다.
|
void die(string message);
지정한 메시지를 출력하고 스크립트의 실행을 종료한다.
|
die() 함수는 제어 구조의 하나로써 Perl에서와 같이 사용자가
지정한 오류 메시지를 출력하고 프로그램의 실행을 종료한다.
exit
함수
exit() 함수의 정의는 다음과
같다.
|
void exit(void);
스크립트의 실행을 종료한다.
|
uniqid
함수
uniqid() 함수의 정의는 다음과
같다.
|
int uniqid(string prefix);
uniq id(UID)를 생성한다.
|
uniqid() 함수는 현재의 시간, 즉 스크립트 실행 시간에 기반을 둔
식별자(UID)를 생성한다. 이러한 식별자는 보통 쇼핑몰이나 회원로그인 등 세션 정보가 필요할 때 사용하는데 만일 허가된 사용자에게 이러한
식별자를 부여하려면 아래와 같은 코드를 통해 식별자를 생성할 수 있다. 생성된 식별자는 32개의 문자로 구성되어 있으며 물론 실행 시마다 다른
값이 생성된다.
|
<?
$uid = md5(uniqid(rand()));
echo("uid : $uid"); // "uid :
b8a70caf1f366703b6e13ad23d1aab65"
?>
|
|