2014-10-14 2 views
0

다른 폴더의 PHP 클래스를 포함하는 데 문제가 있습니다. 그래서, 기본적으로이 내 구조 :다른 폴더의 PHP 클래스 파일을 가져 오거나 포함하려면 어떻게합니까?

FOLDER ------------ FILES

모델 -------------- - ModelDatabase.php

전망 ---------------- home.php

그런 다음 나는 home.php 내부 ModelDatabase.php을 포함해야합니다. 사용해 보았습니다.

require_once(__DIR__."models/ModelDatabase.php"); 

및 다른 변형이 있지만 작동하지 않습니다.

또한 저는 우분투의 로컬 호스트에서이 작업을 실행하고 있습니다.

아무도 도와 드릴 수 있습니까? 당신은 당신이 디렉토리를 변경할 필요가 무엇인지 구조에 따라

+0

'__DIR__'은 현재 PHP 파일의 현재 디렉토리를 *로 끝나는 슬래시 (*)없이 반환합니다. 예를 들면'/ home/site/www'와 같습니다. 누락 된 슬래시에 주목하십시오. 즉'/ home/site/wwwmodels/ModelDatabase.php'를로드 중입니다. */home/site/www/models/ModelDatabase.php를로드해야합니다. – h2ooooooo

+1

아마도 간단히 말해서 .. "../ models/ModelDatabase.php"' – senK

+0

집의 기본 구조는 무엇입니까? – Dwza

답변

0

전체 경로를

i/am/in/this/dir/foo.php 
//is your file 
include("./i/am/in/this/myInclude.php"); 
//includes it with a given full path 

난 것를 사용하는 당신이 처리 할 수있는이

i/am/in/this/dir/foo.php 

//now you want to include a file in foo.php 
//your includes are in the 'this' folder 
//you change dir like 

include("../../myInclude.php"); 
//that means you go two directorys back 

다른 방법입니다 수행하는 방법

define('INC_PATH', '/i/am/in/this/'); 
과 같은 일부 상수를 생성하십시오.

require_once(INC_PATH . "myIncFile.php"); 
+1

절대 경로는 슬래시로 시작해야한다. – Joshua

+0

내 게시물을 편집했다. 하지만 실제로는 그럴 필요가 없습니다. D – Dwza

+0

안녕하세요, 처음에 슬래시를 포함하지 않으면 PHP는 파일이 현재 파일의 폴더에서 검색된다고 가정합니다 * , 루트 디렉토리가 아닙니다. 따라서 처음에는 슬래시를 사용하는 것이 분명 동일하지 않습니다. – Yann

0

처럼 그들을 사용하는 것이 당신에게 마침내 일을 너무 많이들 감사합니다.

기본적으로 나는 클래스 이름에 오타가있었습니다. ModelDatabase 대신 ModelsDatabase를 사용했습니다. PHP Weblinindia에서 제안한대로 include_once ($ _ SERVER [ 'DOCUMENT_ROOT']. '/ models/ModelDatabase.php')를 사용했습니다.

관련 문제