좋아요, 저는 url/admin에서 내 맞춤 블로그를위한 관리 인터페이스를 만들고 있습니다.PHP가 하위 디렉토리에 작업을 포함하도록 만들기
동일한 포함 (자동로드 포함)을 루트 디렉토리로 사용할 수 있습니까?
가능하면/admin에서 액세스 할 때 index.php의 /index.php로 이동하도록 탐색에서 링크를 자동으로 수정할 수 있기를 바랍니다.
감사합니다, 니코
좋아요, 저는 url/admin에서 내 맞춤 블로그를위한 관리 인터페이스를 만들고 있습니다.PHP가 하위 디렉토리에 작업을 포함하도록 만들기
동일한 포함 (자동로드 포함)을 루트 디렉토리로 사용할 수 있습니까?
가능하면/admin에서 액세스 할 때 index.php의 /index.php로 이동하도록 탐색에서 링크를 자동으로 수정할 수 있기를 바랍니다.
감사합니다, 니코
이를위한 가장 좋은 방법은 모든 것이 아래에있는 디렉토리를 포함하는 'ABSOLUTE_PATH'상수를 정의하는 것입니다. 그런 다음 디렉토리에서 디렉토리로 변경되지 않는 '전체'경로를 정의하기 때문에 모든 것을 복사하여 붙여 넣기 만하면됩니다. 예
define("ABS_PATH", $_SERVER['DOCUMENT_ROOT']);
or
define("ABS_PATH", dirname(__FILE__));
// This defines the path as the directory the file is in.
그런 다음 어떤 시점에서 당신은 단순히 파일
include(ABS_PATH . "/path/to/file");
에게 절대하는 Pathes/URL을 사용하는 것이 가장 쉬운 방법을 포함하는이 작업을 수행 할 수 있습니다. URL에 대한
, 같은 응용 프로그램의 루트를 가리키는 곳 상수/변수, 정의
define('ROOT_URL', 'http://www.example.com');
또는
$root_url = 'http://www.example.com';
을 그리고처럼, 모든 링크에서 사용 :
<a href="{$root_url}/my-page.php">blah</a>
이렇게하면 항상 OK입니다 (프로젝트를 다른 서버 나 서브 디렉터에 설치 한 날). y, 하나의 상수/변수 만 수정하면됩니다.)
includes/requires의 경우 항상 절대 pathes도 사용하십시오. 하나 개의 솔루션은 다음과 같이, dirname
을 사용하는 것입니다 :이 라인을 작성하는 경우
include dirname(__FILE__) . '/my_file.php';
include dirname(__FILE__) . '/../my-other-file.php';
__FILE__
는, 현재의 파일입니다; dirname
은 해당 파일이 들어있는 디렉토리의 경로 (전체 경로)를 가져옵니다.
이렇게하면 파일의 상대 경로에 대해 걱정할 필요가 없습니다.
절대 경로 +1 +1 –
abs 경로는 속도가 느려 집니까? 링크를 직선으로 유지하는 것이 아니라 프로그램 흐름을 방해한다고 가정 해보십시오. – Smandoli
또 다른 대답은 처음 두 제안을 결합하는 것과 유사합니다. 다음은이를 위해 다음과 같은 문장을 사용할 수 있습니다 config.php
요구 사항이 사이트의 많은 파일에 포함되는 것으로 가정, 그리고
define('ABSPATH', dirname(__FILE__).'/');
: 당신은 상수를 정의 할 수이 도움이
include(ABSPATH.'config.php');
희망을.
과거 functional.php에 사용한 또 다른 옵션은 클래스 자동 로더입니다.
//Class Autoloader
spl_autoload_register(function ($className) {
$className = strtolower($className);
$path = "includes/{$className}.php";
if (file_exists($path)) {
require_once($path);
} else {
die("The file {$className}.php could not be found.");
}
});
이것은 특정 상황에서 작동하며 절대 $ root URL을 정의하고 싶지 않은 과거에는 유용했습니다.
아,하지만이 경로가 무엇인지 알아 보려면 어떻게해야합니까? –
아마도 서버 변수에 PHP Info를 보거나 직접 정의하고 싶을 것입니다. 직접 정의한 경우 모든 파일이 들어있는 디렉토리인지 확인하십시오. –