2012-01-31 2 views
7

include_once(); 경로를 시작 디렉토리에서 시작하여 경로를 찾는 방법을 찾으려고합니다. ../../../path/to/file 대신 /path/to/file이 필요합니다. 나는 그것이 그런 파일이나 디렉토리가 말한다 /path/to/file 그렇게 할 경우 아파치 서버에게있는 경우, 여기 PHP include_once 경로

"/assets/page_assets.php"

<?php 
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php"); 
?> 
하지의 루트 폴더에서, from the root of the disk 의미 내 직접 코드

<?php 
include_once("/assets/page_assets.php"); 
?> 
+2

'경로의 시작 :

<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?> 

그러나 명랑 코멘트에서 언급 한 바와 같이, 당신은 당신의 최고의 슬래시없이 파일을 포함해야

웹 서버의 루트? '/ path/to/file'은 파일 시스템의 루트 경로입니다! – Cheery

답변

12

입니다 섬기는 사람. beginning directory에 대해 이야기하고 있다면, 별도의 상수/변수로 물리적 경로 (웹 경로가 아닌 서버의 파일 시스템에있는 경로)를 정의하고 위와 같이 포함 된 경로 앞에 추가하십시오.

0
은 이제 include("path/to/file.php");를 호출 할 수 있습니다 chdir($_SERVER['DOCUMENT_ROOT']);

하여 스크립트를 시작

그리고 웹 루트에서 찾고 시작합니다.

1

이렇게하려면 루트에서 경로를 사용해야합니다. 경우에 따라 /var/www/mysite.com/assets/page_assets.php처럼 보일 수 있습니다. 그 경로를 찾으려면 한 가지 방법은 __FILE__ (앞과 뒤에 모두 밑줄이 2 개)입니다. 파일에서이를 에코하면 전체 경로가 표시됩니다. 이를 사용하여 올바른 전체 경로를 설정할 수 있어야합니다.

2

명시 적 경로를 포함 지정할 수 있습니다으로부터 directory` 처음부터

<?php 
include_once("assets/page_assets.php"); 
?>