【问题标题】:PHP include inside an include (different directory)PHP包含在一个包含(不同的目录)中
【发布时间】:2010-12-25 16:47:05
【问题描述】:

我正在从事的当前项目的结构类似于:

  • root/index.php
  • root/includes/php/first.php
  • root/includes/php/functions.php

所以 index.php 包含 first.php:

<?php include_once("includes/php/first.php"); ?>

通常我的 first.php 会调用如下函数:

<?php include_once("includes/php/functions.php"); ?>

假设亲戚仍然来自索引页面,但是当移动到新服务器时它不起作用。我尝试从 first.php 制作相对路径:

include_once("functions.php");

这似乎现在可以工作了。

这通常是正确的方法?我想推出这个项目,这样几乎任何人都可以安装它。

【问题讨论】:

    标签: php apache include directory


    【解决方案1】:

    我总是用:

    include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");
    

    通过这种方式,您始终知道自己在哪里(来自根目录),并且您的代码可以从一个地方复制到另一个地方。

    【讨论】:

      【解决方案2】:

      includes 相对于执行包含的文件。如果您真的想确保并避免任何歧义,您可以这样做:

      include dirname(__FILE__) . "/functions.php";
      

      【讨论】:

      • 非常感谢!不知道为什么它在其他方式之前有效,但这个解决方案将解决未来的问题
      • +1 - 我本来建议使用 $_SERVER['SCRIPT_FILENAME'] 元素来做同样的事情,但这要好得多。
      • 我倾向于为我的 PHP 应用程序创建几个定义并将我的 root_path 和 web_path 存储在那里以供整个使用
      • 我听说 php 没有对文件包含进行预处理,而是在达到该声明时执行....该文件据说包含在另一个文件中,从而改变了目录模型?
      猜你喜欢
      • 2017-07-12
      • 2012-07-10
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2014-02-05
      • 2012-06-28
      相关资源
      最近更新 更多