2012-05-29 12 views
0

내 클라이언트가 서버를 마이그레이션했지만 서버 주소가 동일하지만 내부 폴더 구조가 변경되어 파일 서버 경로가 필요한 PHP 함수로 작업하고있었습니다파일의 실제 경로를 얻는 방법은 무엇입니까?

예를 들어 웹 사이트 주소는 다음과 같습니다. www.example.com/file.php이 함수는 다음과 같은 경로를 사용합니다 :

require_once('/var/www/file.php'); 

알아낼 방법이 있습니까?

답변

2
+1

자세한 내용 :'dirname (__ FILE__)과 같아야합니다. '/ relative/path/to/file.php' '또는 (PHP5.3 이상인 경우)'__DIR__. '/ relative/path/to/file.php'' – KingCrunch

+0

dirname (__ FILE__)의 결과를 출력해야합니다. '/relative/path/to/file.php'아니면 그냥 그대로 두시겠습니까? – steps

+2

디렉토리 만'__DIR__'을 사용하고 싶다면. 파일 이름으로 전체 경로를 원하면'__FILE__'을 사용하십시오. –

5

이 구글의 첫 번째 히트하고 허용 대답은 여기에, 질문의 정신에 따라 불완전 완전한 해답입니다. 존 콘데 말한 것처럼


__FILE__마법의 일정이지만, 그것은 단지 당신이 실행되고있는 현재 PHP 파일의 실제 경로를 제공합니다.

__DIR__은 현재 실행중인 파일의 디렉토리를 가져옵니다. 또는 dirname(__FILE__)

$_SERVER['DOCUMENT_ROOT']은 웹 루트에 대한 물리적 경로를 가져옵니다.

|-foo 
| |-bar 
|  |-executing.php 
|-biz 
    |-required.php 

executing.php는 현재 실행중인 파일이며 required.php을 포함 할 말 있습니다 : /var/www/example.com/httpdocs

는 예를 들어, 귀하의 웹 사이트는 다음과 같은 폴더 구조를 가지고 말할 수 있습니다. 몇 가지 옵션이 있습니다. 물론

//relative to the file 
require __DIR__ . "/../../biz/required.php"; 
require dirname(__FILE__) . "/../../biz/required.php"; 

//relative to the web root 
require $_SERVER['DOCUMENT_ROOT'] . "/biz/required.php"; 

, 이러한 예 중 하나에, 당신은 또한 require_once 대신 require 사용할 수 있습니다.

관련 문제