내 디렉토리 구조는 다음과 같습니다 "이 필요합니다." 나는 PHP 과정을 따르고 있으며, 강사도 똑같은 일을합니다.PHP 상대 경로는
관리자/index.php에 :
require "../blog.php";
차례로 그 디렉토리에있는 두 개 더 파일이 필요합니다.
require "db.php";
require "functions.php";
내 디렉토리 구조는 다음과 같습니다 "이 필요합니다." 나는 PHP 과정을 따르고 있으며, 강사도 똑같은 일을합니다.PHP 상대 경로는
관리자/index.php에 :
require "../blog.php";
차례로 그 디렉토리에있는 두 개 더 파일이 필요합니다.
require "db.php";
require "functions.php";
상대적 포함 경로가 예상대로 작동하지 않는 경우 포함하려는 경로 앞에 __DIR__
을 추가하는 것이 가장 좋습니다.
require __DIR__ . "/../blog.php";
상당히 깨끗하며 포함 경로 또는 작업 디렉토리를 수정할 필요가 없습니다.
이것은 효과가 있습니다. 감사! 비록 내가 왜 이것을해야하는지 전혀 모르겠지만. 강사는'require "../blog.php";와 함께 아무 문제없이 떠납니다. OS의 차이 때문입니까? 그는 Mac에 있으며 Windows를 사용하고 있습니다. – Rafay
저는 실제로 확신 할 수 없습니다. 현재 작업 디렉토리가 스크립트 디렉토리와 항상 일치하지는 않는다고 생각합니다. –
@Rafay : 어쨌든 나쁜 행동입니다. 항상 절대 경로를 계산 한 다음 필요/포함해야합니다. – prodigitalson
chdir($_SERVER['DOCUMENT_ROOT'])
으로 파일을 시작하고 싶습니다. 이것은 제가 포함하고있는 모든 것에 대해 훌륭하고 논리적 인 기본 경로를 얻을 수있게 해줍니다. 이 포함되는 경우
그래서 php.ini에 include_path 지시어가 있습니다. –
'include_path'는'file_exists'와 같은 것에는 적용되지 않습니다;) –
과 실제 사용하지 않는 php 파일 당 하나의 파일 작업. PSR-0을 사용하거나 __DIR__을 사용하는 것을 고려하십시오. –
는이 코드를
require "../db.php";
require "../functions.php";
를 작성해야하거나 blog.php
에서이 파일을 포함하는 경우 다음
require "db.php";
require "functions.php";
당신은 필요이 코드를 작성 index.php
에 db.php and functions.php
파일 php.ini에 include_path
을 설정하십시오.
런타임에 설정하려면 set_include_path()
을 사용하십시오.
당신은 레벨을 단계적으로 내려야한다고 생각합니다. '../../ blog.php'는'blog.php'가'blog' 폴더에 없다고 가정합니다. – prodigitalson
그럴 것이라고 생각하지 않습니다. 'blog.php'는'blog' 디렉토리에 있습니다. – Rafay
아아 귀하의 디렉토리 구조 표기법이 혼란 스럽습니다 :-) – prodigitalson