什么是.inc,为什么使用它?


139

我经常在PHP中看到包含include.inc文件的示例。.inc是什么意思?它的作用是什么?使用它的缺点和优点是什么?

Answers:


268

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

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

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


8
@domanokz是的,这样可以安全使用。仅当在requireinclude结构中使用它时,才将其视为php,而在其余时间中,它将被视为纯文本。将其视为服务器上的文本不会有问题,只有在将代码作为文本提供给最终用户时,它才会受到损害。
保罗,

@Paulpro我一直在想这个问题,感谢您说清楚这一点!
RealDeal_EE'13年

1
很好的解释。刚开始一项新工作时,在整个应用程序中看到了这些乱七八糟的东西。我不知道这纯粹是一个约定。谢谢!
2014年

4
关于未将服务器配置为将.inc文件解析为php。实际上并不需要,因为它们只能从require / include中的其他php文件中读取。安全吗?正如Paulpro所指示的那样,您不希望最终用户查询代码,因此您希望通过Apache conf或中的“ RedirectMatch 403 /.*\.inc$”将文件配置为最终用户无法检索。 htaccess
2014年

注意:这不仅适用于.php.inc。PHP还包括其他文件类型。包括“ .html”,“。js”,“。css”,“。txt”或您可以想到的任何自定义文件扩展名,也将使PHP解析从其中读取PHP代码。当您要创建基于文件的数据库并想知道它是否是数据库文件时,此选项很有用。喜欢.data。然后,您可以使用上面的@ClearCrescendo的注释来保护它。
Jomar Sevillejo,2015年

71

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

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

  1. welcome.php在根文件夹中命名的一个,包含所有HTML标记。
  2. welcome.inc.phpinc文件夹中另一个名为,包含该welcome.php页面所有的PHP函数。

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


4
+1值得一提的是,我在一个项目中做到了这一点。
dpp 2012年

17

通常意味着它是一个需要包含的文件,它本身并不构成独立脚本。

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

尽管如果您的Web服务器配置不正确,则可能会公开带有.inc扩展名的文件。


12

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


4

这是程序员通常用来标识包含文件的不同文件名的约定。这样,如果其他开发人员正在使用他们的代码,他可以仅通过查看文件名即可轻松确定该文件为何存在以及该文件的用途。


3

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


2

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


这是毫无意义的评论。我总是使用.inc作为包含文件,因为它很简单,没有负数,只有正数。在这种情况下,“公约”一词没有提及。而PHP框架,我不知道,我自己从来不会碰它们,所以我写代码,所以“框架”已经取代PHP编码的说法是错误的。如果喜欢的话,使用这些东西没什么错,但是认为在代码编辑器中替换了标准编程是错的。
Lizardx '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.