PHP 포함을 사용하여 웹 사이트에 페이지를 포함 시키면 포함 된 파일의 모든 경로가 엉망이됩니다. 포함 된 페이지는 From 페이지를 포함한 같은 폴더에있는 것처럼 작동합니다.php include, 모든 경로가 엉망이 됨
이 문제를 방지하거나 해결할 방법이 있습니까?
PHP 포함을 사용하여 웹 사이트에 페이지를 포함 시키면 포함 된 파일의 모든 경로가 엉망이됩니다. 포함 된 페이지는 From 페이지를 포함한 같은 폴더에있는 것처럼 작동합니다.php include, 모든 경로가 엉망이 됨
이 문제를 방지하거나 해결할 방법이 있습니까?
은 당신이 경로 설정 등이 무엇입니까 그것이 무엇이든? included.php가 page.html과 같은 디렉토리가 아니라면, 기존 include 경로에 추가 할 수 있습니다.
<?php
$path = '/path/to/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>
나는이 문제를 해결 얻으려고 the PHP manual
당신은을 통해 예를 들어, 올바르게 포함 경로를 설정해야 할 수도 있음을, 아니
include 'FileName.php';
:
그런 다음set_include_path(get_include_path() . PATH_SEPARATOR . 'YourPath');
당신은 그냥 것처럼 포함 할 필요는 같은 디렉토리입니다 기본적으로 PHP include 함수의 기본 동작입니다. 기본적으로 포함 된 파일의 내용을 포함 파일에 복사합니다. 그렇게하면 포함 된 파일의 명령어가 마치 포함 파일에있는 것처럼 작동합니다 (그 이유는 포함 된 파일이기 때문입니다).
포함 파일의 지침을 리팩터링하여 포함 파일의 폴더에서 작동 시키거나 포함 된 파일의 폴더를 포함 경로에 추가 할 수 있습니다.
절대 경로를 사용할 수 있습니까? 'http://www.site.com/the/full/url/image.jpg'
심지어
$path = 'http://www.site.com';
및 $path.'images/image.jpg'
또는
한 가지 방법을 시도 항상 다른 파일을 포함하는 파일 기반 곳에서 포함하여 :
$here = dirname(__FILE__);
include($here."/../include.php");
// will include a file *allways* one level up from where *this* file is located
// and not the file that started the execution of the script.
가끔 파일이를 여러 위치에서 액세스하므로 포함 파일 경로가 관리하기가 어려워 질 수 있습니다. 그래서 보통 알려진 지점에 환경 설정 파일을 포함시키고 일반적인 include 지점에 대한 경로를 정의하려고합니다.
// from a common config file
define("PATH_TO_CLASS", dirname(__FILE__)."/../class");
define("PATH_TO_MEDIA", dirname(__FILE__)."/../assets/media");
그런 다음 당신은 당신이 좋아하는 설정 파일을 포함 시켰습니다 파일에 사용할 수 있습니다
include dirname(__FILE__)."/../config.php";
include PATH_TO_CLASS."/snassy.class.php";
좋은 트릭. 내 두통을 해결했습니다. –
또 다른 대답을 당신을 위해. 어떤 이유로 든 일이 변하지 않으면 어떤 성공에 I've used chdir()
.
예를 들어 모바일 사이트 사용자가 기본 사이트와 다른 디렉토리를 사용했지만 주 사이트의 모든 기능과 클래스를 사용하기를 원했기 때문에 공통 코드를 호출하기 전에 바로 chdir(/to/the/main/site/folder);
을 호출했습니다. 다른 경로를 포함합니다. 나는 사물을 혼란스럽게 할 수 있으므로 드물게 사용합니다.
실제로 포함되지 않는 파일이 포함될 것으로 기대하십니까? –