Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP需要在不同的文件夹中_Php_Require - Fatal编程技术网

PHP需要在不同的文件夹中

PHP需要在不同的文件夹中,php,require,Php,Require,好的,在我的网站上,我有一个脚本文件夹,其中包括一个连接到mysql服务器的php文件,所以如果我移动一个数据库,那么它将在所有连接到数据库的文件上更改它 我还有另一个名为templates的文件夹。在该文件夹中,页眉和页脚有一个顶部。在标题模板中,我写道: require("../scripts/connect.php"); 我还有另一个文件夹叫category。该文件夹包含标题,标题包含connect。但随后它会显示错误,即没有这样的文件 请帮忙。谢谢您不应该在include/requir

好的,在我的网站上,我有一个脚本文件夹,其中包括一个连接到mysql服务器的php文件,所以如果我移动一个数据库,那么它将在所有连接到数据库的文件上更改它

我还有另一个名为templates的文件夹。在该文件夹中,页眉和页脚有一个顶部。在标题模板中,我写道:

require("../scripts/connect.php");
我还有另一个文件夹叫category。该文件夹包含标题,标题包含connect。但随后它会显示错误,即没有这样的文件


请帮忙。谢谢

您不应该在include/require中使用相对路径,而应该使用常量定义网站的根路径

例如: 在所有文件中,包括:

define(ROOT_PATH, '../');

include ROOT_PATH . '/scripts/connect.php';

在/scripts/connect.php(以及将包含在某个地方的所有其他文件)中,所有包含文件都应该使用根路径(不定义它)。

一个好的做法是在所有运行的php文件中包含一个主配置,通常称为config.php:)

在这个配置文件中,创建一个名为SITE_ROOT的常量或类似的东西,指向像这样的确切文件夹
define(“SITE_ROOT”,“/var/www/mysite”)

然后在任何include上,include_once,require,require_once,像这样使用它:

require(SITE_ROOT."/scripts/connect.php");

这将解决任何相对路径问题

移动数据库是什么意思?请详细说明。什么找不到什么?请记住,脚本位置和工作目录不是同一个目录。php在执行include或require时使用运行的脚本路径,而不是包含的脚本路径,请检查我的答案,我希望它能为您的问题提供解决方案