PHP - $_SERVER 함수

Language/PHP 2010. 4. 22. 13:34

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 = webappinclude

$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 방식 = gzip, deflate

$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어 = ko

$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경 = Mozilla4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705

$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP = xxx.xxx.xxx.xxx

$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명 = webappincludeindex.php

$_SERVER['SERVER_NAME'] = 사이트 도메인 = WWW.X2CHI.COM

$_SERVER['SERVER_PORT'] = 사이트가 사용하는 포트 = 80

$_SERVER['SERVER_SOFTWARE'] = 서버의 소프트웨어 환경 = Apache1.3.23 (Unix) PHP4.1.2 mod_fastcgi2.2.10 mod_throttle3.1.2 mod_ssl2.8.6 OpenSSL0.9.6c

$_SERVER['GATEWAY_INTERFACE'] = cGI 정보 = CGI1.1

$_SERVER['SERVER_PROTOCOL'] = 사용된 서버 프로토콜 = HTTP1.1

$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외 =  index.phpuser=&name=

$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외 = index.php

$_SERVER['APPL_PHYSICAL_PATH'] = 현재페이지의 실제 파일 주소 = Dwebapp



==========================================================================================================

이 변수는 현재 주소란에 입력된 도메인을 기준으로 해당 도메인으로 접속했을 때 기본적으로 연결되어 있는 폴더를 뜻합니다.

예를 들어 test.com 이란 도메인을 서버의 /home/test/html 이란 폴더로 연결을 해놨다면...

브라우저에서 http://www.test.com 으로 접속을 하게되면  /home/test/html 디렉토리로 연결이 되는거죠. 바로 이 디렉토리가 $DOCUMENT_ROOT 변수에 저장된 디렉토리가 되는 것입니다.

덧붙여서 include문은 절대경로를 사용했을 경우 웹사이트의 루트가 아닌 파일시스템의 루트를 기준으로 접근을 합니다. 그래서 $DOCUMENT_ROOT라는 변수가 필요한 것이죠.

$DOCUMENT_ROOT 는 파일시스템에서 웹사이트의 루트까지 경로를 담고 있는 것이고요.
===========================================================================================================

현재 URL : /html/test?id=aa&passwd=bb 라고 가정..

$PHP_SELF(정말 많이 사용하는거..) : /html/test 값이 들어있음..

$REQUEST_URI : /html/test?id=aa&passwd=bb 값이 들어있음.. 인증후에
넘어갈때.. 정확치 않는 복수개의 변수값들이 딸려올때..
form 으루 넘긴 값에서 hidden 일때 , post루 넘긴 값은 안
나타남.. get으루 넘겨야 모든 변수들이 나타남..

$QUERY_STRING : 넘어온 변수들만 저장 id=aa&passwd=bb 이렇게..

$SERVER_NAME : www.servername.co.kr 이 들어있다..

$SERVER_ADMIN : admin_id@userhost.co.kr 이 들어있슴..

$REMOTE_ADDR : 현재의 클라이언트의 ip가 들어 있슴. ex, 211.111.xxx.xxx

$HTTP_COOKIE : 현재의 쿠키정보저장 ex, email=bellheat; name=aaaa
가끔 씀.. 현재의 쿠키 파악해서.. strchr등으루 찾아서
원하는 쿠키만을 삭제,추가등.. 마니 씀..

$HTTP_COOKIE_VARS["쿠키변수이름"] : 쿠키변수의 값을 저장.. 쿠키변수들
이 어떤것이 저장 되어있는지 확실
히 아는경우 사용..

$HTTP_USER_AGENT : 클라이언트 정보저장..

$REQUEST_METHOD : 넘어온 변수들의 방식이 GET인지 POST인지 저장.. 

'Language > PHP' 카테고리의 다른 글

date() 함수 포맷  (0) 2010.04.30
@의 역할  (0) 2010.04.27
php 배열  (0) 2010.04.27
get_magic_quotes_gpc()  (0) 2010.04.07
PHP 함수  (0) 2010.04.06
:

edit plus tip

Tip 2010. 4. 21. 14:26

1. 프로그램 종료 전까지 작업했던 문서 자동 열기
문서-영구적인설정-일반-시작할 때 작업 파일 다시 로드 채크

2. 지정 문서 목록 열기
프로젝트-프로젝트 편집-프로젝트 추가 후 목록 만들기-프로젝트 선택-모두 프로젝트에 추가-프로젝트 로드

3. 함수에서 { } 블록 바로가기
{ 에 커서 지정 후 Ctrl + }, Ctrl + Shift + }

4. 함수에서 {} 블록 색 지정
보기-괄호 표시

5. 백업 파일 변경
문서-영구적인설정-파일-저장시 백업 파일 생성 채크/백업 옵션-백업디랙토리설정-백업 디텍토리에 원격파일의 백업 파일 생성, 날짜와 시간 포함 채크

6. 다른 2개 문서 비교
창-창배열-수직/수평 배열

7. 같은 문서 비교
창-분할

8. 현재 보고 있는 문서 디렉토리로 이동
디렉토리 창 아래 문서 목록에서 마우스 오른쪽 - 파일 디렉토리

9. f9 책갈피 f4 찾기

'Tip' 카테고리의 다른 글

  & < > "  (1) 2012.01.06
EditPlus 단축키 모음  (0) 2010.11.23
에디트 플러스 환경 설정 파일  (0) 2010.11.01
SecureCRT 마우스 오른쪽 옵션  (0) 2010.05.03
secureCRT 단축키  (0) 2010.05.03
:

grep 명령어

OS/리눅스 & 유닉스 2010. 4. 20. 11:21


grep 명령어 사용법 출처 : 유닉스 쉘 바이블 (엘리 퀴클리 지음)에서 발췌.
3.1 grep 명령어

grep : 파일 전체를 뒤져 정규표현식에 대응하는 모든 행들을 출력한다. -r : 하위 폴더 포함
egrep : grep의 확장판으로, 추가 정규표현식 메타문자들을 지원한다.
fgrep : fixed grep 이나 fast grep으로 불리며, 모든 문자를 문자 그래도 취급한다. 즉, 정규표현식의 메타문자도 일반 문자로 취급한다.

3.2 정규표현식을 사용하는 grep의 예제
# grep NW datafile
# grep NW d* (d로 시작하는 모든 파일에서 NW를 포함하는 모든 행을 찾는다.)
# grep '^n' datafile (n으로 시작하는 모든 행을 출력한다.)
# grep '4$' datafile (4로 끝나는 모든 행을 출력한다.)
# grep TB Savage datafile (TB만 인자이고 Savage와 datafile은 파일 이름이다.)
# grep 'TB Savage' datafile (TB Savage를 포함하는 모든 행을 출력한다.)
# grep '5.' datafile (숫자 5, 마침표, 임의의 한 문자가 순서대로 나타나는 문자열이 포함된 행을 출력한다.)
# grep '.5' datafile (.5가 나오는 모든 행을 출력한다.)
# grep '^[we]' datafile (w나 e로 시작하는 모든 행을 출력한다.)
# grep '[^0-9]' datafile (숫자가 아닌 문자를 하나라도 포함하는 모든 행을 출력한다.)
# grep '[A-Z][A-Z] [A-Z]' datafile (대문자 2개와 공백 1개, 그리고 대문자 하나가 연이어 나오는 문자열이 포함된 행을 출력한다.)
# grep 'ss* ' datafile (s가 한 번 나오고, 다시 s가 0번 또는 여러번 나온 후에 공백이 연이어 등장하는 문자열을 포함한 모든 행을 출력한다.)
# grep '[a-z]{9}' datafile (소문자가 9번 이상 반복되는 문자열을 포함하는 모든 행을 출력한다.)
# grep '(3).[0-9].*1 *1' datafile (숫자 3,마침표,임의의 한 숫자,임의 개수의 문자,숫자 3(태그),임의 개수의 탭 문자,숫자 3의 순서를 갖는 문자열이 포한된 모든 행을 출력한다.)
# grep '(north로 시작하는 단어가 포함된 모든 행을 출력한다.)
# grep '' datafile (north라는 단어가 포함된 모든 행을 출력한다.)
# grep '<[a-z].*n>' datafile (소문자 하나로 시작하고, 이어서 임의 개수의 여러 문자가 나오며, n으로 끝나는 단어가 포함된 모든 행을 출력한다. 여기서 .*는 공백을 포함한 임의의 문자들을 의미한다.)

3.3 grep에 옵션 사용
# grep -n '^south' datafile (행번호를 함께 출력한다.)
# grep -i 'pat' datafile (대소문자를 구별하지 않게 한다.)
# grep -v 'Suan Chin' datafile (문자열 Suan Chin이 포함되지 않은 모든 행을 출력하게 한다. 이 옵션은 입력 파일에서 특정 내용의 입력을 삭제하는데 쓰인다.
# grep -v 'Suan Chin' datafile > black
# mv black datafile
# grep -l 'SE' * (패턴이 찾아진 파일의 행 번호 대신 단지 파일이름만 출력한다.)
# grep -w 'north' datafile (패턴이 다른 단어의 일부가 아닌 하나의 단어가 되는 경우만 찾는다. northwest나 northeast 등의 단어가 아니라, north라는 단어가 포함된 행만 출력한다.)
# grep -i "$LOGNAME" datafile (환경변수인 LOGNAME의 값을 가진 모든 행을 출력한다. 변수가 큰따옴표로 둘러싸여 있는 경우, 쉘은 변수의 값으로 치환한다. 작은따옴표로 둘러싸여 있으면 변수 치환이 일어나지 않고 그냥 $LOGNAME 이라는 문자로 출력된다.)

3.4 egrep
egrep(extended grep) : grep에서 제공하지 않는 확장된 정규표현식 메타문자를 지원  한다. grep와 동일한 명령행 옵션을 지원한다.

3.4.1 egrep 예제
# egrep 'NW|EA' datafile (NW나 EA가 포함된 행을 출력한다.)
# egrep '3+' datafile (숫자 3이 한 번 이상 등장하는 행을 출력한다.)
# egrep '2.?[0-9]' datafile (숫자 2 다음에 마침표가 없거나 한 번 나오고, 다시 숫자가 오는 행을 출력한다.)
# egrep ' (no)+' datafile (패턴 no가 한 번 이상 연속해서 나오는 행을 출력한다.)
# egrep 'S(h|u)' datafile (문자 S 다음에 h나 u가 나오는 행을 출력한다.)
# egrep 'Sh|u' datafile (패턴 Sh나 u를 포함한 행을 출력한다.)

3.5 고정 grep 과 빠른 grep
fgrep : grep 명령어와 동일하게 동작한다. 다만 정규표현식 메타문자들을 특별하게 취급하지 않는다.
# fgrep '[A-Z]****[0-9]..$5.00' file ([A-Z]****[0-9]..$5.00 이 포함된 행을 출력한다. 모든 문자들을 문자 자체로만 취급한다.)

출처 : empas blog 시스템 뽀사불기 ~~^=,.=^~~ (syk1000)



/////////// 추가 /////////////////////////////////////////////////////////////////////////////
grep:

주어진 패턴을 포함하는 파일의 라인을 출력.

- n 매칭된 라인 줄수를 넣어줌.

- i 대소문자를 구분하지 않음.

- v 리버스의 뜻. 해당 패턴을 제외한 나머지.

- c 일치하는 라인의 개수.

- l 매칭된 라인을 가진 파일의 이름을 보여주는 옵션.



특정 문자열 찾기:

grep copying help

- help 파일에서 copying 이라는 문자열을 포함하는 각줄을 보여준다.



정규식을 사용한 예:

grep -n '[dD]on\'t' tasks

- tasks 파일에서 don't나 Don't 문자열을 포함하는 각 줄을 그 줄 번호와 함께(-n 옵션) 보여준다.

- 이 예제에서 사용된 패턴은 [,] 같은 쉘에서 특별한 의미로 쓰이는 문자들을 포함하며, 하나 이상의 정규식이 사용되었기에 따옴표로 묶어준 경우이다. 큰 따옴표를 사용한다면, 작은 따옴표도 하나의 패턴임을 지시한다. 즉, on't 문자열을 on\'t 로 표시할 필요가 없다.



파이프를 이용한 예:

ls -l | grep '^d........x'

- 현재 디렉토리 내용 중에 다른 사용자에게 실행 권한이 부여된 하위 디렉토리가 어떤 것이 있는지를 알아보는 경우이다.

This lists all the directories in the current directory for which other users have execute permission.

- 정규식에서 ^ 문자는 그 줄의 처음을 뜻한다. 즉, 윗 경우는 각 줄의 첫칸에 d로 시작해서, 10번째 칸에 있는 문자가 x인 임의의 문자열을 찾는 경우이다.



결과를 방향 전환해서 파일로 저장하는 경우:

grep Smith /etc/passwd > smurffs

- passwd 파일에서 Smith 문자열을 포함하는 줄을 찾아, 그 결과를 smurffs 파일에 기록 하는 경우이다. 이것은 결국 현재 시스템에서 사용하고 있는 사람 중에 그 username이 Smith 이거나, 실재 이름이 Smith인 모든 사람을 찾아 볼 수 있다.



원하는 파일 삭제하는 예:

rm -f $(grep -l "패턴")

출처 - http://www.wwww7.com/

'OS > 리눅스 & 유닉스' 카테고리의 다른 글

crontab(1)  (0) 2010.05.18
vi 에디터  (0) 2010.05.07
vi 메뉴얼  (0) 2010.04.22
리눅스 명령어  (0) 2010.04.20
vi 명령어  (0) 2010.04.20
: