PHP에서 파일을 요구하거나 포함할 때 대부분 상대 경로가 사용되는데 이는 골치 아픈 문제입니다.
예:
d33960d65abb73911b33db45e19cd446(웹사이트 루트 디렉터리)
├72d4ced2cc960a6bc2541984146fdaaaFolder
│ │
│ └1.php
├9368c5823948a595f9974a5e2b3bd3f1폴더
│ │
│ └2.php
└ index .php
문제: 1.php에서 include(“../B/2.php”)는 B 디렉터리
에 있는 2.php 파일을 소개하는 데 사용됩니다. index.php에서 include("A/1.php")는 A 디렉토리에 있는 1.php 파일을 소개하는 데 사용됩니다.
물론 실행 시 문제가 발생하며 ../B/ 2.php 파일을 찾을 수 없습니다.
원칙을 기억하세요. 모든 include 문은 결국 포함 파일 경로에 따라 포함 경로로 변환됩니다. __FILE__ 또는 $_SERVER['DOCUMENT_ROOT와 같은 기본 경로를 모든 경로에 대한 참조로 사용하는 것이 좋습니다. ' ]
__FILE__: (다양한 상황에 적합)
구성 파일에서 사이트 루트 디렉터리를 구성합니다.
define( "WEB_ROOT ", dirname(__FILE__) ) ) ;
구성 파일은 웹사이트의 루트 디렉터리에 있습니다.
다른 파일에는 구성 파일이 포함되어 있습니다.
다른 파일을 포함할 때는 WEB_ROOT에 따라 찾으세요.
require_once( WEB_ROOT . "/a.php " );
$_SERVER['DOCUMENT_ROOT'], 비가상 호스트(별칭) 상황에 적합
PHP 코드
<?php if (!defined("WETSITE_BASE_DIR")) define("WETSITE_BASE_DIR", $_SERVER['DOCUMENT_ROOT'].'/Clare/'); require_once(WETSITE_BASE_DIR.'includes/global.inc.php'); ?>