【问题标题】:PHP Require In different foldersPHP 要求在不同的文件夹中
【发布时间】:2012-09-06 09:34:24
【问题描述】:

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

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

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

我还有另一个文件夹,名为 category。该文件夹包括标题,标题包括连接。但随后它显示并错误,没有这样的文件。

请帮忙。谢谢

【问题讨论】:

  • 移动数据库是什么意思?
  • 详细说明。什么没找到?
  • 请记住,脚本位置和工作目录不是一回事。 getcwd()
  • php在做include或require时使用运行脚本路径,而不是包含的脚本路径,查看我的回答,希望能给你解决问题

标签: php require


【解决方案1】:

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

在此配置文件中创建一个名为 SITE_ROOT 的常量或类似的指向确切文件夹的类似内容 define("SITE_ROOT", "/var/www/mysite");

然后在任何 include、include_once、require、require_once 上使用它:

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

这应该可以解决任何相对路径问题

【讨论】:

    【解决方案2】:

    您不应将相对路径与 include/require 一起使用,而应使用定义您网站的 ROOT_PATH 的常量。

    示例: 在所有需要调用的文件中包括:

    define(ROOT_PATH, '../');
    
    include ROOT_PATH . '/scripts/connect.php';
    

    在 /scripts/connect.php(以及将包含在某处的所有其他文件)中,所有包含都应使用 ROOT_PATH(无需定义)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2013-05-25
      • 2011-02-11
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      相关资源
      最近更新 更多