繁体   English   中英

php包含在html文件目录中

[英]php includes in html files-directories

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

谦卑敬畏的弓......

ps这个主题有一个很好的圣经!?

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

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

使用php扩展程序通过php代码调用文件通常更安全。

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

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

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

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

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

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

詹姆斯·穆瑟:

我想你现在指的是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脚本),否则它不会运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM