无论如何,我既不能使用require_once也不能使用include来包含所需的文件。 我要包含的文件与我要包含的文件在同一目录中。 我尝试了每种组合,但仍然无法正常工作。
我尝试使用require_once的错误
Warning: require_once(D:\PROJEKAT\wamp\www\Eif\db_connect.php): failed to open stream: No such file or directory in D:\PROJEKAT\wamp\www\Eif\create_user.php
我第一次尝试
require_once '/db_connect.php'
然后我用
require_once '\db_connect.php' cause I realized that I have to use \ in windows
然后尝试
require_once __DIR__ . '\db_connect.php'
最后
require_once $_SERVER['DOCUMENT_ROOT'] . '/Eif/db_connect.php';
我认为我使用的路径是好的,但是它一直以错误的方式使用它。
问题是什么?
谢谢
使用常量DIRECTORY_SEPERATOR在您的平台上始终正确
如果在同一目录中,为什么不完全省略斜杠?
@Dirkos好的,谢谢,但是还有什么呢?
您使用哪个PHP版本? __DIR__最初是在5.3中添加的(该版本于2009年发布,本月停止支持)。
PHP不在乎您使用哪个目录分隔符。 正斜杠应该在* nix和Windows上都可以使用。
尝试使用完整路径require_once"FULL_PATH_OF_THE_FILE";
快速回答
您应该可以执行以下操作:
require_once 'db_connect.php';
更多信息
require,require_once,include和include_once都相同,但有一个例外:require会在失败时发出致命错误,其中include会发出警告。
这些要注意的其他事情实际上是通过php ini include_path指令搜索的,因此,当您尝试包含另一个文件时,php将按照第一个指令的顺序搜索这些目录。
默认情况下,此伪指令通常如下所示:.:/usr/share/php:/usr/share/pear。这可以通过许多函数来更改,甚至您想知道的php.ini也可以:
set_include_path-设置包含路径指令;
get_include_path-显示当前包含路径;
getcwd-显示当前工作目录;
chdir-更改当前工作目录;
注意如果使用set_include_path,则不是添加到列表,而是覆盖其值;因此明智的做法是:
set_include_path(get_include_path() . PATH_SEPERATOR . '/path/to/new/location');
您尝试到达路径的方式必须有一些错误。
您可以使用以下php函数对其进行调试。
print_r(get_included_files()); // Write this above the file that you are trying to include
set_include_path('path_to_your_directory');
// This will set the directory for once in
your page after setting the path use require_once with the file name straight away
?>
如果要包含的文件位于同一目录中,则该文件应该可以工作:
require_once 'db_connect.php'