我正在从头开始构建一个网络应用程序,这是我第一次尝试这样的事情。
从子目录中执行require_once
时遇到问题。
文件夹结构:
Root + browse -> file.php
+ classes -> User.php
+ core -> init.php
+
+
-> index.php
-> random.php
我的每个文件都是这样开始的,并且工作正常
<?php
require_once '/core/init.php';
# Head
require_once '/head.php';
$user = new User();
# Header
require_once '/header.php';
head.php
和header.php
位于root folder
,页面工作正常,例如index.php等。
我在browse->file.php
中遇到问题,代码如下:
<?php
require_once '../core/init.php';
# Head
require_once '../head.php';
$user = new User();
# Header
require_once '../header.php';
错误:
Warning: require_once(classes/User.php): failed to open stream: No such file or directory in /home/vagrant/vm/data/core/init.php on line 27
Fatal error: require_once(): Failed opening required 'classes/User.php' (include_path='.:/usr/share/php:') in /home/vagrant/vm/data/core/init.php on line 27
我的init.php
文件:
session_start();
$directory = $_SERVER['DOCUMENT_ROOT'];
spl_autoload_register(function ($class) {
require_once 'classes/'.$class.'.php';
});
require_once $directory.'/classes/Hash.php';
require_once $directory.'/functions/sanitize.php';
我甚至继续添加$directory. '/classes/'.$class.'.php';
这打破了整个网站..
我也尝试在我的file.php
中使用,$ directory = $ _SERVER ['DOCUMENT_ROOT']进行引用;并做require_once $directory.'/head.php'
没用,我不知道我做错了什么。
谢谢你们!