【问题标题】:Php includes between 2 subdirectoriesphp包含2个子目录
【发布时间】:2014-12-16 18:33:45
【问题描述】:

我有

public_html/dir/dir1/1.php and
public_html/dir/dir2/2.php

如何将 1.php 包含到 2.php 中?

详情: 我有2个文件 public_html/projectplay/functions/functions.php 和 public_html/projectplay/includes/header.php

还有, public_html/projectplay/includes/header_pc.php public_html/projectplay/includes/header_mob.php

在 header.php 中,我必须包含 functions.php 我试过下面的代码

<?php 
require '../functions/functions.php';
if ( $detect->isMobile() ) {
include 'header_mob.php';

}
else {
include 'header_pc.php';
}

?>

还有我的 public_html/projectplay/index.php在这里

<?php require_once 'functions/functions.php'; ?>
<!DOCTYPE html>
<?php include 'includes/header.php';?>
Dummy Dummy Dymmy
<?php include 'includes/footer.php';?>

而public_html/projectplay/includes/footer.php是

但它在 index.php 上输出错误

警告:要求(../functions/functions.php):无法打开流: 在......中没有该文件或目录 /home/epdroidc/public_html/projectplay/includes/header.php 在第 2 行

警告:要求(../functions/functions.php):无法打开流: 在......中没有该文件或目录 /home/epdroidc/public_html/projectplay/includes/header.php 在第 2 行

致命错误:require():需要打开失败 '../functions/functions.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') 在 /home/epdroidc/public_html/projectplay/includes/header.php 在第 2 行

我的问题在哪里?我是php新手。

【问题讨论】:

  • 只需删除header.php 中的require '../functions/functions.php';,因为您将它包含在index.php 中。
  • 但是如果我想在 public_html/files/index.php 中使用 header.php (或任何没有 的新文件)怎么办?那么header.php是如何加载functions.php的呢?我有个主意!最好删除 来自 index.php
  • 没有。您包含的每个文件都可以访问您之前声明或包含的所有 php 变量和函数。所以 index.php 中的 require_once 是更好的做法。

标签: php


【解决方案1】:

在 php2 中:

require_once('../dir1/php1.php');

require_once($_SERVER['DOCUMENT_ROOT'].'/public_html/dir/dir1/php1.php');

【讨论】:

  • 警告:require_once(../dir1/php1.php):无法打开流:第 1 行的 /home/epdroidc/public_html/projectplay/dir2/2.php 中没有这样的文件或目录
  • 1.php 有 "blaaaaaaa blaaaaaaaaa" 和 2.php 有
【解决方案2】:

使用绝对路径而不是相对路径。参考this question

请注意,在 index.php 中您似乎已经需要 functions/functions.php。您的应用程序逻辑有点混乱。

【讨论】:

  • 使用require_once 可能值得注意,因为您可能会收到cannot redeclare function previously declared 错误。
  • 我稍后需要 index.php 中的 functions.php。我可以使用根目录下的路径函数/functions.php 添加它,以 index.php 为例,但是在不同的子文件夹中尝试时会出现问题。
猜你喜欢
  • 2012-06-28
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
相关资源
最近更新 更多