열 수 없는 PHP 상대 디렉터리에 대한 해결 방법: 1. "절대 경로"를 사용합니다. 2. 일반 함수 import.php를 정의하고 "자동으로 파일을 미리 가져오기"로 설정한 다음 php.ini의 내용을 다음과 같이 수정합니다. "auto_prepend_file = "C:xampphtdocsauto_prepend_file.php""이면 충분합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
php 상대 디렉토리를 열 수 없습니까? PHP
./a/a.php (相对当前目录) ../common.inc.php (相对上级目录),
/apache/wwwroot/site/a/a.php c:/wwwroot/site/a/a.php
. 또는 /로 시작하지 않거나 Windows 드라이브 문자:/로 시작하지 않는 경로(예:
a/a.php common.inc.php,
require './a.php'와 require 'a.php'는 다릅니다!
세 가지 유형의 포함 경로가 처리되는 방식을 분석해 보겠습니다. 먼저 한 가지 결론을 기억하세요. 포함 경로가 상대 경로이거나 절대 경로인 경우 include_path(php.ini에 정의된 include_path 환경 변수)로 이동하지 않습니다. , 또는 프로그램에서 파일을 찾으려면 set_include_path(...)를 사용하십시오.테스트 환경 설명
참고: 다음 토론과 결론은 이 환경을 기반으로 합니다. A=http://www.xxx.com2. 상대 경로: 파일의 최종 경로를 결정하려면 참조 디렉터리가 필요합니다.
포함된 중첩 수준에 관계없이 이 참조 디렉터리는 프로그램 실행 항목 파일이 있는 디렉토리. 예제 1A中定义 require './b/b.php'; // 则B=[SITE]/app/test/b/b.php B中定义 require './c.php'; // 则C=[SITE]/app/test/c.php 不是[SITE]/app/test/b/c.php
A中定义 require './b/b.php'; // 则B=[SITE]/app/test/b/b.php B中定义 require '../c.php'; // 则C=[SITE]/app/c.php 不是 [SITE]/app/test/c.php
A中定义 require '../b.php'; //则B=[SITE]/app/b.php B中定义 require '../c.php'; //则C=[SITE]/app/c.php 不是 [SITE]/c.php
A中定义 require '../b.php'; // 则B=[SITE]/app/b.php B中定义 require './c/c.php'; / /则C=[SITE]/app/test/c/c.php 不是 [SITE]/app/c/c.php
A中定义 require '../inc/b.php'; // 则B=[SITE]/app/inc/b.php B中定义 require './c/c.php'; // 则C还是=[SITE]/app/test/c/c.php 不是 [SITE]/app/inc/c/c.php
A中定义 require '../inc/b.php'; // 则B=[SITE]/app/inc/b.php B中定义 require './c.php'; // 则C=[SITE]/app/test/c.php 不是 [SITE]/app/inc/c.php
require '/wwwroot/xxx.com/app/test/b.php'; // Linux中 require 'c:/wwwroot/xxx.com/app/test/b.php'; // windows中
A中定义 require '../b.php'; // 则B=[SITE]/app/b.php B中定义 require dirname(__FILE__).'/c.php'; // 则B=[SITE]/app/c.php
A中定义 require '../inc/b.php'; // 则B=[SITE]/app/inc/b.php B中定义 require dirname(__FILE__).'/c.php'; // 则B=[SITE]/app/inc/c.php 始终跟B在同一个目录
B如果 require dirname(__FILE__).'/c.php'; // 则始终引用到跟B在同一个目录中的 c.php文件; B如果 require dirname(__FILE__).'/../c.php'; // 则始终引用到B文件所在目录的父目录中的 c.php文件; B如果 require dirname(__FILE__).'/c/c.php'; // 则始终引用到B文件所在目录的c子目录中的 c.php文件;
"상대 경로"의 "참조 디렉터리"는 실행 항목 파일이 있는 디렉터리이므로 "결정되지 않은" 경로도 혼동하기 쉽기 때문에 최선의 해결책은 다음과 같습니다. "절대 경로" 를 사용합니다. 예를 들어, b.php가 필요한 위치에 관계없이 b.php의 경로는 c.php
$dir = dirname(__FILE__); require($dir . '../c.php');
를 요구하는 참조로 사용됩니다. 일반 함수 import.php가 정의되어 있고 "미리 자동으로 파일 가져오기"로 설정하고 php.ini
更改配置项(必须)auto_prepend_file = "C:\xampp\htdocs\auto_prepend_file.php" 更改配置项(可选)allow_url_include = On
에서 다음과 같이 구성합니다. import.php의 내용은 다음과 같습니다
function import($path) { $old_dir = getcwd(); // 保存原“参照目录” chdir(dirname(__FILE__)); // 将“参照目录”更改为当前脚本的绝对路径 require_once($path); chdir($old_dir); // 改回原“参照目录” }
이렇게 하면 현재 파일
권장 학습: "PHP 비디오 튜토리얼"
을 포함하는 "참조 디렉토리"의 수준에 관계없이 파일을 요구하려면 import() 함수를 사용하십시오.위 내용은 PHP의 상대 디렉터리를 열 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!