SugarCRM/PHP

[PHP] 열린 문서의 절대경로, 상대 경로, URL, URI 나타내기

onesixx 2013. 2. 1. 13:49
반응형

[PHP] 열린 문서의 절대경로, 상대 경로, URL, URI 나타내기

웹 문서를 다루다 보면 열린 문서나 파일의 전체 또는 상대 경로를 알아야 할 때가 종종 있다.  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;
 
 
echo "<br/>";
 
 
웹 경로가 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

반응형

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

php 비교연산자  (0) 2013.05.06
Callback 함수란?  (0) 2013.05.06
PHP , HTML  (0) 2013.01.24