【问题标题】:What is an .inc and why use it?什么是 .inc,为什么要使用它?
【发布时间】:2011-10-31 02:03:22
【问题描述】:

我经常在 PHP 中看到包含 .inc 文件的示例。 .inc 的含义是什么?它是用来做什么的?使用它有什么缺点和优点?

【问题讨论】:

  • 扩展名.inc来自include,意味着它有一些应该包含在php代码中的信息,比如一些配置,例如ambient = production。因此,您加载此文件,然后对其进行解码以获取配置键和值。

标签: php


【解决方案1】:

如果您担心提供文件的内容而不是其输出。您可以使用双重扩展,例如:file.inc.php。然后它服务于帮助和可维护性的相同目的。

我网站上的每个页面通常有 2 个 php 文件:

  1. 根文件夹中名为welcome.php 的文件包含所有HTML 标记。
  2. 另一个名为 welcome.inc.php 的文件夹位于 inc 文件夹中,包含特定于 welcome.php 页面的所有 PHP 函数。

编辑:使用双扩展 .inc.php 的另一个好处是任何 IDE 仍然可以将文件识别为 PHP 代码。

【讨论】:

  • +1 值得一提的是,我在我的一个项目中做到了这一点。
【解决方案2】:

请注意 您可以配置Apache,禁止直接访问URL检索所有带有.inc扩展名的文件。

见链接:https://serverfault.com/questions/22577/how-to-deny-the-web-access-to-some-files

【讨论】:

    【解决方案3】:

    它没有任何意义,它只是一个文件扩展名。如果该文件被设计为包含在其他 PHP 文件中,则使用 .inc 扩展名命名文件是某些人的惯例,但这只是惯例。

    它确实有一个可能的缺点,即服务器通常未配置为将 .inc 文件解析为 php,因此如果该文件位于您的 Web 根目录中并且您的服务器以默认方式配置,则用户可以查看您的 php .inc 文件中的源代码,直接访问 URL。

    它唯一可能的优点是很容易识别哪些文件被用作包含。虽然简单地给它们一个 .php 扩展名并将它们放在一个包含文件夹中具有相同的效果,但没有上述缺点。

    【讨论】:

    • @domanokz 是的,那时可以安全使用。只有在require 或include 结构中使用时才会被视为php,其余时间则被视为纯文本。将其视为服务器上的文本不会受到伤害,只有当您的代码作为文本提供给最终用户时才会受到伤害)。
    • @Paulpro 我一直在想这个问题,谢谢你说清楚!
    • 很好的解释。刚开始一份新工作,看到这些东西在整个申请过程中都乱七八糟。我不知道这纯粹是一个约定。谢谢!
    • 关于服务器未配置为 parse.inc 文件为 php。它实际上并不需要,因为它们只能从 require/include 中的其他 php 文件中读取。安全吗?正如 Paulpro 指出的那样,您不希望好奇的最终用户阅读代码,因此您确实希望将文件配置为最终用户无法在 Apache conf 或 . htaccess
    • 注意:这不仅适用于.php 和.inc。 PHP 还包括其他文件类型。包括“.html”、“.js”、“.css”、“.txt”或任何您能想到的自定义文件扩展名也会使 PHP 解析从中读取 PHP 代码。当您想要创建基于文件的数据库并想要判断它是否是数据库文件时很有用。喜欢.data。然后,您可以使用上面的@ClearCrescendo 评论来保护它。
    【解决方案4】:

    只是添加。另一个缺点是 IDE 无法识别 .inc 文件,因此您无法利用自动完成或代码预测功能。

    【讨论】:

      【解决方案5】:

      这是程序员通常用来识别包含文件的不同文件名的约定。因此,如果其他开发人员正在处理他们的代码,他可以通过查看文件名轻松识别该文件存在的原因以及该文件的用途。

      【讨论】:

        【解决方案6】:

        一般意味着它是一个需要被包含的文件,并且它本身并不独立的脚本。

        这是一种约定,而不是一种编程技术。

        虽然如果您的网络服务器配置不正确,它可能会暴露带有 .inc 等扩展名的文件。

        【讨论】:

          【解决方案7】:

          在我看来,这些被用作开发时快速查找包含文件的一种方式。实际上,这些已经被约定和框架设计过时了。

          【讨论】:

          • 这是毫无意义的评论。我总是将 .inc 用于包含文件,因为它很简单,而且没有负面影响,只有正面影响。在这种情况下,我所知道的“约定”一词没有所指。而 PHP 框架,不知道,我自己从不碰它们,我编写代码,所以“框架”取代 PHP 编码的概念是错误的。如果你喜欢使用这些东西并没有错,但认为它在代码编辑器中取代了标准编程是错误的。
          【解决方案8】:

          这只是开发人员能够轻松识别要用作包含文件的一种方式。这是一个流行的约定。它对 PHP 没有任何特殊含义,不会改变 PHP 或脚本本身的行为。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-01-10
            • 2011-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多