[英]Fatal error : require(): Failed opening required
所以,我有一個目錄和這樣的子目錄
+task
+Include
+vendor
- autoload.php
+Theme
+action
- doInsert.php
+objects
- CardAccessor.php
當我嘗試在CardAccessor.php
調用autoload.php
時出現錯誤
doInsert.php
require_once '../objects/CardAccessor.php';
CardAccessor.php
require '/../include/vendor/autoload.php';
錯誤說:
警告:require(/../ include / vendor / autoload.php):無法打開流:沒有此類文件或目錄致命錯誤:require():無法打開所需的'/../include/vendor/autoload.php'
require '/../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'
path/ require '/my/project/path/task/Include/vendor/autoload.php'
。
這與您的問題有關:PHP- 相對路徑“ require”
您需要定義一個配置
如果這是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/";
這也用於可移植性,如果您決定移動源,則可以修改配置; 此外,這是在腳本中包含或要求文件的有效方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.