현재 주소, 현재 URL 아는 방법 - 특정 페이지... $_SERVER 함수 정리 > 웹제작/운영

사이트 내 전체검색
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go

웹제작/운영

PHP 현재 주소, 현재 URL 아는 방법 - 특정 페이지... $_SERVER 함수 정리

페이지 정보

profile_image
작성자 키스세븐
조회 1,385회 작성일 22-04-10 16:39

본문

현재 주소, 현재 URL 아는 방법

특정 페이지... $_SERVER 함수 정리


현재 페이지가 특정 페이지면 정해진 것을 실행해야 하는 경우가 종종 있다.

예를 들어, A.html이면 "현재 위치는 A입니다" 같은 안내를 나타내야 하는 경우등에 사용할 수도 있다.

이런 기능을 하는 것이 $_SERVER 함수다. 정리를 통해서 활용 방법을 설명한다.



현재 주소, 현재 URL 아는 방법 - 특정 페이지... $_SERVER 함수 정리



$_SERVER 함수를 왜 사용하나?


예를 들어, 그누보드의 index.php를 보면 아래와 같은 코드가 있다.

[code]

if (!defined('_INDEX_')) define('_INDEX_', true);

[/code]

이것은 현재 페이지가 메인페이지라면 특정 기능을 실행한다는 것이다.

사이트를 만들 때, 메인페이지에는 특정한 기능들을 넣어서 만들기 때문에 필요한 코드다.


또한, 현재 페이지가 특정 주소라면 관리자만 볼 수 있어야 한다거나, 현재 주소가 특정 URL이라면 특정한 페이지를 보여줘야 할 때도 이 방법을 사용한다.



현재 주소 아는 방법 예제


아래에 정리된 함수는 이렇게 사용하면 된다.


예를 들어, 만약 현재 페이지A폴더에 있는 B.php일때 뭔가를 하고 싶다면 이렇게 한다.

[code]

<?php 

if($PHP_SELF=="/A/B.php") { 

     필요한 명령;

  }

?>

[/code]

여기서 $PHP_SELF=="/A/B.php" 부분을 풀이하자면, "현재주소"가 "A 안의 B.php"라면... 이라는 뜻이다. 

즉, 아래에서 정리하는 것 중에 필요한 것을 $PHP_SELF가 있는 부분에 넣으면 되는 것이다.



현재 URL을 알아내는 방법 정리


$_SERVER 함수 정리

(아래에서 "도메인 다음의"라는 표현이 있다면, 그것은 http://www.kiss7.kr/A/B.php 중에서 /A/B.php만을 의미하는 것이다.)


[code]

$_SERVER['SERVER_NAME'] : 사이트 도메인만 나타냄.

[/code]

예 : http://www.kiss7.kr/A/B.php/?search=query일 경우 www.kiss7.kr만 나타냄.


[code]

$_SERVER['PHP_SELF'] : 도메인 다음만 표시하고, 그 뒤에 붙는 값은 제외.

[/code]

예 : http://www.kiss7.kr/A/B.php/?search=query일 경우 /A/B.php/만 나타냄.


[code]

$_SERVER['REQUEST_URI'] : 도메인 다음만 표시.

[/code]

예 : http://www.kiss7.kr/A/B.php/?search=query일 경우 /A/B.php/?search=query가 나타남.


[code]

$_SERVER['DOCUMENT_ROOT'] : 호스팅에서 현재 서버의 위치만 나타냄.

[/code]

예 : http://www.kiss7.kr/일 경우 /home100/kiss7/www가 나타남.


[code]

$_SERVER['SCRIPT_FILENAME'] : 호스팅에서 전체 위치를 나타냄.

[/code]

예 : http://www.kiss7.kr/일 경우 /home100/kiss7/www/A/B.php를 나타냄.


[code]

$_SERVER['SERVER_PORT'] : 사용되는 포트를 나타냄.

[/code]

예 : http://www.kiss7.kr/80일 경우 80이라고 적힘.


[code]

$_SERVER['REMOTE_ADDR'] : 현재 접속자의 IP를 나타냄.

[/code]

예 : 220.200.10.100처럼 IP를 보여줌.



현재 위치가 특정 페이지라면... 활용 예제


그렇다면 이것은 PHP에서 여러 조합으로도 사용 가능하다는 것을 알 수 있을 것이다.


[code]

<?php 

   echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

?>

[/code]

위와 같이 한다면, $_SERVER['SERVER_NAME']가 도메인이고, $_SERVER['REQUEST_URI']가 그 외의 주소이므로 아래처럼 나타나게 된다.

http://www.kiss7.kr/A/B.php


보통, 정확한 현재 주소의 페이지를 알아내서 if문을 쓸 때는 아래처럼 사용하고,[code]

if($_SERVER['PHP_SELF']=="/A/B.php") { 명령문 } : 함수를 바로 쓸 때

if($PHP_SELF=="/A/B.php") { 명령문 } : 그누보드처럼 함수를 저장해서 호출할 때

[/code]


그누보드처럼 특정 게시판인가를 알아낼 때는 아래처럼 사용한다. [저작권법 표시] 원본 출처 : 키스세븐(www.kiss7.kr)

[code]

if($_SERVER['REQUEST_URI']=="/notice") { 명령문 } : 함수를 바로 쓸 때

if($REQUEST_URI=="/notice") { 명령문 } : 그누보드처럼 함수를 저장해서 호출할 때

[/code]

 

 

추천0
총 5개 (1Page)
  • RSS

검색


    허브사이트 "키스세븐"
    [허브사이트란?]
    수많은 사이트와 포털을
    한 번에 모아서
    사용할 수 있는 서비스를 말합니다.