Php 致命错误:require():无法打开require

Php 致命错误:require():无法打开require,php,path,Php,Path,我有一个目录,子目录如下 +task +Include +vendor - autoload.php +Theme +action - doInsert.php +objects - CardAccessor.php 当我试图在CardAccessor.php中调用autoload.php时出现了错误 require '/../include/vendor/autoload.php'; doInsert.php re

我有一个目录,子目录如下

+task
  +Include  
    +vendor  
     - autoload.php

  +Theme  
    +action
     - doInsert.php
    +objects
     - CardAccessor.php
当我试图在CardAccessor.php中调用autoload.php时出现了错误

require '/../include/vendor/autoload.php';
doInsert.php

require_once '../objects/CardAccessor.php';
CardAccessor.php

require '/../include/vendor/autoload.php';
错误是这样的:

警告:require/./include/vendor/autoload.php:无法打开流:没有这样的文件或目录 致命错误:require:无法打开required'/../include/vendor/autoload.php'

require“/../include/vendor/autoload.php”不起作用,您需要删除第一个斜杠。在编写时,第一个斜杠告诉它去根目录,然后从那里往上一个它不能做的,它已经在根目录了

考虑到您的目录结构,我认为require“../../include/vendor/autoload.php”应该可以工作。

执行include时,路径总是相对于包含该文件的文件

您需要放置的是require“../../Include/vendors/autoload.php”或设置完整路径,如require“/my/project/path/task/Include/vendor/autoload.php”


这与您的问题有关:

您需要定义一个配置

如果这是linux unix,请使用

$baseDir = "/base/dir"; //to define where in the root filesys where youre scripts and assets live
然后使用

$baseDir."/task/Include" or 
$baseDir."/task/Theme/objects/CardAccessor.php" or 
$baseDir."/task/include/vendor/autoload.php"
或者您可以创建

$sourceDir = $baseDir."/task/";

这也用于可移植性,如果您决定移动源,您可以修改配置;此外,这是在脚本中包含或需要文件的有效方法。

文件/./include/vendor/autoload.php不存在。请尝试使用require'../include/vendor/autoload.php';我已经尝试了../Include/vendor/autoload.php,但仍然不起作用。我只是再次查看了目录结构。您需要升级两个级别,即.././include/vendor/autoload.php。我正在编辑我的答案以匹配。