所以最近我决定移动位于每个页面顶部的php代码,并且与它自己的php文件完全相同。我在尝试require_once()之前做的第一件事是确保php可以读取文件,所以我做了
<?php
if(file_exists('Backend.php')) {
echo 'File does exist';
}
?>
它回应说文件存在完全正常。现在每当我尝试:
<?php
require('Backend.php') or die('Could not load Backend.');
?>
我收到错误:
'Warning: require(1): failed to open stream: No such file or directory in
C:\Users\Owner\Dropbox\PotateOS\index.php on line 2
Fatal error: require(): Failed opening required '1'(include_path='.;C:\xampp\php\PEAR;C:\Users\Owner\Dropbox\PotateOS') in C:\Users\Owner\Dropbox\PotateOS\index.php on line 2
注意我正在使用(XAMPP)。我尝试过的事情:
将文件的路径添加到php.ini的include_path
检查文件名以确保它没有任何奇怪的charectars
使用此作为文件路径:
<?php
require($_SERVER['DOCUMENT_ROOT'] . 'Backend.php') or die('Could not load');
?>
(请注意,我尝试访问后端的页面和后端都位于根目录中)
答案 0 :(得分:9)
问题是require
不是一个函数,而是一个语言结构;因此,它将运行您的代码:
require('Backend.php' or die('Could not load Backend.'));
表达式'Backend.php' or die('Could not load Backend.')
会产生bool(true)
并转换为字符串,它将变为string(1) "1"
,并且会尝试加载。
您可以简单地将代码缩减为:
require 'Backend.php';
如果无法找到该文件,它将引发错误并将暂停该脚本。正如评论中所提到的,认识到文档根目录没有斜杠是很重要的。因此,你必须自己添加:
require $_SERVER['DOCUMENT_ROOT'] . '/Backend.php';
答案 1 :(得分:0)
在需要之前添加:
echo getcwd();
然后检查Backend.php是否与此函数的结果在同一目录中