PHP是否包括行为异常?

PHP是否包括行为异常?,php,file,include,Php,File,Include,出于某种原因,如果我将文件结构中更深的一个文件导入到调用include的文件所在的位置,则该文件可以工作,或者如果我包含同一级别的文件 如果我尝试包含“../impfle.php”,它会告诉我没有文件 任何帮助:尝试以下操作: include('./../backFile.php'); 试试这个: include('./../backFile.php'); 您可能应该尝试将其基于当前目录: include(getcwd() . '../backFile.php'); 您可能应该尝试将其基于

出于某种原因,如果我将文件结构中更深的一个文件导入到调用include的文件所在的位置,则该文件可以工作,或者如果我包含同一级别的文件

如果我尝试包含“../impfle.php”,它会告诉我没有文件

任何帮助:

尝试以下操作:

include('./../backFile.php');
试试这个:

include('./../backFile.php');

您可能应该尝试将其基于当前目录:

include(getcwd() . '../backFile.php');

您可能应该尝试将其基于当前目录:

include(getcwd() . '../backFile.php');

我不能完全确定你的确切情况。可能有一个简单的修复方法可以让它包含工作。这一修正可能会在另一个答案中提供

相反,我将为您提供一个最佳实践,也许不是“最佳”,而是一个良好实践:

在您调用的第一个文件或配置文件中,定义一个常量,该常量是您的文件所在的第一个目录的路径

因此,如果您在/home/user/domains/test.com/中工作:

然后,无论什么时候,当你包含一些东西时,把它作为一个起点

include(SITE_PATH . "lib/test.class.php");
这将确保PHP使用文件的完整路径,并且您不必担心包含文件


这在更改文件位置时非常有用,因为移动文件时不必更改包含所有内容的内容。

我不完全确定具体情况。可能有一个简单的修复方法可以让它包含工作。这一修正可能会在另一个答案中提供

相反,我将为您提供一个最佳实践,也许不是“最佳”,而是一个良好实践:

在您调用的第一个文件或配置文件中,定义一个常量,该常量是您的文件所在的第一个目录的路径

因此,如果您在/home/user/domains/test.com/中工作:

然后,无论什么时候,当你包含一些东西时,把它作为一个起点

include(SITE_PATH . "lib/test.class.php");
这将确保PHP使用文件的完整路径,并且您不必担心包含文件


这在您更改文件位置时非常有用,因为移动包含所有内容的文件时,您不必更改包含内容。

除了其他人所说的内容之外,我还可以将所有内容重新设置为realpath。。。例如:


includeAllPathDirName__文件_.'/../myFile.php'

除了其他人所说的以外,我还真的了解了一切。。。例如:

includeAllPathDirName__文件_.'/../myFile.php'

include取决于php的指令,该指令是。默认情况下,当前执行脚本所在的目录

使用或设置您自己的include_路径。

include取决于php的指令,该指令为。默认情况下,当前执行脚本所在的目录


使用或设置您自己的包含路径。

在要包含的参数中指定绝对路径或相对路径时,它不使用系统包含路径,而是相对于主文件解析路径,主文件通常是某种index.php

例如,您有三个文件,/www/index.php:

和/www/libs/init.php:


然后在所有路径前面加上它。str_replace调用是为了更平滑地处理Windows路径。

在要包含的参数中指定绝对或相对路径时,它不使用系统包含路径,而是解析相对于主文件的路径,主文件通常是某种index.php

例如,您有三个文件,/www/index.php:

和/www/libs/init.php:

然后在所有路径前面加上它。str_replace调用是为了更顺利地处理Windows路径

<?php
include('../test.php');
define('DIR_ROOT', str_replace('\\', '/', dirname(dirname(__FILE__))));