2013-04-11 2 views
1

거의 9 년 전에 제 웹 사이트의 PHP 코드를 작성했습니다. 구성 파일에 common.php이 있습니다. 내 사이트의 각 페이지는 사이트의 상수, 클래스 및 변수에 액세스하려면이 페이지가 필요합니다.서버 문서 루트를 신뢰할 수 있습니까

로컬 컴퓨터에서 개발 한 다음 파일을 라이브 사이트에 업로드합니다. 내가 common.php 전화를 내 페이지에 사용한 코드는 다음과 같습니다이 잘 작동하고 나에게 문제를 준 적이있다

$main = ($_SERVER['HTTP_HOST'] == 'localhost')? "E:\-=Web=-\-=Sites=-\mysite\main\common.php" :"/home/mysite/public_html/main/common.php"; 
require_once($main); 

.

require_once($_SERVER["DOCUMENT_ROOT"]."/main/common.php") 

이 내 코드를 더 컴팩트 만들 것 그리고 그것은 또한 내 개발 사이트 그래서 E://

항상 파일이 필요가 없습니다 의미 : 그러나

, 내가 대신 사용할 수 파악 제 질문은, $_SERVER["DOCUMENT_ROOT"]을 사용하는 것이 좋은 습관입니까?

대부분의 개발자가 각 페이지에서 구성 파일을 호출하고 싶다면 어떻게해야합니까?

답변

1

가장 일반적이며 신뢰할 수있는 방법은 index.php 파일이나 동일한 디렉토리 또는 알려진 상대 경로 및 참조에서 포함 된 config.php 파일에 코드 경로가 포함 된 상수를 정의하는 것입니다 그 :

if (!defined('APP_DIR')) define('APP_DIR', __DIR__); // set the app directory to that of the currently executing file 

귀하가 다른 파일에 대한 행을 필요가 다음 지금이

require_once(APP_DIR . '/main/common.php'); 

이되고, 당신은이 상수는 당신이 그것을 기대하는 것을 포함 할 것이라는 점을 보장 할 수있다. 네가 맞췄다 고 가정하면. ;)

+0

감사합니다. 필자가 작성한 코드가 내가 사용했던 것보다 더 작기는하지만 2 줄은 여전히 ​​하나보다 낫다. – user2269415

+0

죄송합니다. 신고가 늦었습니다. 이 코드가 무엇을하는지 이해합니다. 그러나 config.php 파일을 자동으로 호출하는 방법을 모르므로 APP_DIR은 내가 사용하고자하는 페이지에서 액세스 할 수 있습니다. config.php를로드하기 위해 .htaccess 파일에서 auto_prepend를 설정해 보았습니다. 이건 내 개발 서버에서 잘 작동했지만 내 호스트 라이브 서버에서는 (나는 이것을 변경하지 못한다고 생각한다). – user2269415

관련 문제