이 웹 폴더
root
/includes
/relativeroot1
/relativeroot2
위의 includes
폴더에 path.php
라는 이름의 파일을 만들고 다음
<?php
if (session_id() == '') {
session_start(); /* if not already done */
}
/* replace value below with appropriate header to root distance of this include file */
$header_to_root_distance = 1;
$header_dir = dirname(__FILE__);
$root_distance = substr_count($header_dir, DIRECTORY_SEPARATOR) - $header_to_root_distance;
if($_SERVER['SERVER_ADDR']){
$include_distance = substr_count(dirname($_SERVER['SCRIPT_FILENAME']), "/");
}else{
$include_distance = substr_count(dirname($_SERVER['SCRIPT_FILENAME']), "\\");
}
$r_path = str_repeat('../', $include_distance - $root_distance);
$_SESSION['r_path'] = $r_path;
/* Note - $r_path holds your relative url starting from the root folder */
?>
는 root
에 .htaccess
파일을 만듭니다 삽입 모습입니다 가정 위의 폴더에 다음을 삽입하십시오.
<IfModule php5_module>
php_value include_path "includes/"
</IfModule>
이제 상대 경로가 그래서 귀하의 경우 모든 파일에서 모든 상대 경로를 요청 상단
<?php require 'path.php' ?>
에서 다음 당신의 myphp.php
스크립트를 예컨대 삽입 할 파일을 엽니 다. 다음을 수행하십시오.
<img src="<?php echo $r_path.'relativeroot2/img.jpg' ?>" title="My Image" />
이 디렉토리는 웹 루트 외부입니까? – mikevoermans
@mikevoermans : 예 웹 루트 외부에 있습니다 – Someone
웹 루트 밖에 있으면 처리 할 수 없습니다. 파일의 내용을 가져와 적절한 MIME 유형 헤더로 인쇄해야합니다. 내가 PHP 5.2 '이 dirname (__ FILE의 __)를'사용합니다 – MetalFrog