마스터포유(Master4U)
Monday, 17 of January
 

로그인 Category
[PHP] 열린 문서의 절대경로, 상대 경로, URL, URI 나타내기
관리자  2014-03-28 15:02:37 Hit:2539
링크 #1: http://pat.im/817

  웹 문서를 다루다 보면 열린 문서나 파일의 전체 또는 상대 경로를 알아야 할 때가 종종 있다.  http://abcdef.org/list.php 갈은 URL 꼴과 http://abcdefg.org/list.php?id=123 같은 URI 꼴을 구분해야 할 때도 있다. 아래는 PHP 파일이 있는 곳의 절대 경로, 상대 경로와 URI, URL을 구하는 예제이다.

$file_server_path = realpath(__FILE__);
// PHP 파일 이름이 들어간 절대 서버 경로

$php_filename = basename(__FILE__);
// PHP 파일 이름

$server_path = str_replace(basename(__FILE__), "", $file_server_path);
// PHP 파일 이름을 뺀 절대 서버 경로

$server_root_path = $_SERVER['DOCUMENT_ROOT'];
// 서버의 웹 뿌리(루트) 경로(절대 경로)

$relative_path = eregi_replace("\/[^/]*\.php$", "/", $_SERVER['PHP_SELF']);
// 웹 문서의 뿌리 경로를 뺀 상대 경로

$relative_file_server_path = $relative_path.$php_filename;
// PHP 파일 이름이 들어간 상대 경로

$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'].':'.$_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
// 바탕 URL

$web_path = $base_URL.$relative_path;
// PHP 파일이 있는 곳의 웹 경로

$full_URL = $web_path.$php_filename;
$full_URI = $base_URL.$_SERVER['REQUEST_URI'];

echo "문서가 있는 곳의 절대 경로 : ".$server_path;
echo "\n";
echo "문서가 있는 곳의 전체 웹 경로 : ".$web_path;
echo "\n";
echo "문서가 있는 곳의 상대 경로 : ".$relative_path;
echo "\n";
echo "문서의 절대 경로 : ".$file_server_path;
echo "\n";
echo "문서의 상대 경로 : ".$relative_file_server_path;
echo "\n";
echo "문서의 전체 URL : ".$full_URL;
echo "\n";
echo "문서의 전체 URI : ".$full_URI;


  웹 경로가 http://abcdefg.org/dir/이고 서버 경로가 /home/users/username/www/dir/인 공간이 있다고 하자. 이 곳에 위 내용을 test.php에 넣고 주소창에 http://abcdefg.org/dir/test.php?id=123이라 넣으면 다음처럼 나올 것이다.
문서가 있는 곳의 절대 경로 : /home/users/username/www/dir/
문서가 있는 곳의 전체 웹 경로 : http://abcdefg.org/dir/
문서가 있는 곳의 상대 경로 : /dir/
문서의 절대 경로 : /home/users/username/www/dir/test.php
문서의 상대 경로 : /dir/test.php
문서의 전체 URL : http://abcdefg.org/dir/test.php
문서의 전체 URI : http://abcdefg.org/dir/test.php?id=123

2011/06/19 14:07 2011/06/19 14:07
본문인쇄본문메일발송
Fatal error에 대한 설명과 해결방법 부탁드립니다.
PHP 현재 페이지 주소 알아내기
Copyright 1999-2019 Zeroboard / skin by ChanBi