php包含在html文件目录中

时间:2008-11-24 16:12:20

标签: php path include directory

所有php包含文件都必须在include目录中,还是只是组织上的便利? 我可以使用该目录的路径从任何目录中包含文件吗? 包含php的html文件是否必须有php扩展名? 如果是这样,我想这意味着如果他们都有我计划“包含”的菜单,我所有的html文档都将是php。是否可以使用您的网站上的每个文件都是一个php文件?

谦卑敬畏的鞠躬......

P.S。这个话题有一个很好的圣经!?

4 个答案:

答案 0 :(得分:7)

您不需要将php包含在任何特定的地方,或者有任何文件扩展名......

调用include('/ path / to / your / file / with / any / extension.extension');应该将它包含为php文件

通常使用php扩展名调用带有php代码的文件更安全。

答案 1 :(得分:1)

如果你将PHP放在.html文件中并包含()它,它应该可以工作。但是,如果有人直接从服务器请求.html文件,他们可以看到所有未处理的PHP代码,这是危险的。因此,如果您这样做,则将这些文件放在非Web可访问的目录中(例如,在文档根目录上方)或更改您的Web服务器配置,以便将.html文件视为PHP。

你应该能够包含()任何文件,但如果PHP中存在open_basedir限制(在大多数虚拟主机中你可能会找到),你可能会在访问某些目录时遇到问题

答案 2 :(得分:1)

您可以在服务器上的任何位置包含文件(当然,取决于文件访问权限和安全限制)。

使用包含目录有助于保持组织良好,但不是必需的。

如果文件包含PHP代码,则应将其保存为.php文件 - 否则如果直接调用该代码将无法运行。这会留下一个文件,根据访问方式的不同,该文件的行为可能不同,这可能不是您想要的,也可能是安全威胁。

为了解决这个问题,我看到有些人覆盖了文件类型,因此服务器将所有.html文件视为PHP脚本 - 我不推荐这样做,因为它会减慢所有文件的处理速度,即使它们不包含任何文件也是如此PHP。遵循最小惊喜原则 - 让您的HTML文件为.html,PHP文件为.php - 每个人都会更开心。

答案 3 :(得分:0)

James Musser:

我认为你现在指的是Apache SSI (见http://httpd.apache.org/docs/2.2/howto/ssi.html#standard-footer

不知道答案,我试过了,这是我的结果

Extension  Call method        PHP runs
 .html      browser            no
 .html      Apache #include    no
 .html      PHP include()      yes
 .php       browser            yes
 .php       Apache #include    yes
 .php       PHP include()      yes

(使用WinXP,Apache 2.2.3,PHP 5.2.26和CentOS 5.2,Apache 2.2.3,PHP 5.1.16进行测试)

所以你的答案是肯定的 - 如果你想通过Apache SSI #include调用PHP脚本,脚本必须有一个.php扩展名(或者其他扩展名,即.php4 .php5等,它在Apache注册作为PHP脚本),否则它将不会运行。