[英]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.