내 클라이언트가 서버를 마이그레이션했지만 서버 주소가 동일하지만 내부 폴더 구조가 변경되어 파일 서버 경로가 필요한 PHP 함수로 작업하고있었습니다파일의 실제 경로를 얻는 방법은 무엇입니까?
예를 들어 웹 사이트 주소는 다음과 같습니다. www.example.com/file.php이 함수는 다음과 같은 경로를 사용합니다 :
require_once('/var/www/file.php');
알아낼 방법이 있습니까?
내 클라이언트가 서버를 마이그레이션했지만 서버 주소가 동일하지만 내부 폴더 구조가 변경되어 파일 서버 경로가 필요한 PHP 함수로 작업하고있었습니다파일의 실제 경로를 얻는 방법은 무엇입니까?
예를 들어 웹 사이트 주소는 다음과 같습니다. www.example.com/file.php이 함수는 다음과 같은 경로를 사용합니다 :
require_once('/var/www/file.php');
알아낼 방법이 있습니까?
이 구글의 첫 번째 히트하고 허용 대답은 여기에, 질문의 정신에 따라 불완전 완전한 해답입니다. 존 콘데 말한 것처럼
__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
사용할 수 있습니다.
자세한 내용 :'dirname (__ FILE__)과 같아야합니다. '/ relative/path/to/file.php' '또는 (PHP5.3 이상인 경우)'__DIR__. '/ relative/path/to/file.php'' – KingCrunch
dirname (__ FILE__)의 결과를 출력해야합니다. '/relative/path/to/file.php'아니면 그냥 그대로 두시겠습니까? – steps
디렉토리 만'__DIR__'을 사용하고 싶다면. 파일 이름으로 전체 경로를 원하면'__FILE__'을 사용하십시오. –