PHP include() 或 require()
PHP的include()或require()函数主要用于代码的重用性。它可以帮助开发人员创建可以在多个页面上重复使用的函数、页眉、页脚或元素,这样可以方便地更改整个网站的布局。如果需要进行更改,只需更改包含的文件,而不是成千上万个文件。
在许多基于PHP的平台(如Wordpress、Magento等)中都使用了这个函数,其中一种常见的用法是用于页眉和页脚。
关于安全性方面,使用include()或require()函数时,安全性可以降低或提高,具体取决于使用方式。远程文件包含是降低页面安全性的一个例子。例如:
假设在example.com/malice.php存在一个文件,而我们的脚本位于site.com/index.php。攻击者将发送如下请求:site.com/index.php?page=www.example.com/malice。当该文件被包含时,它将被执行,并且可能会在磁盘上写入一个新文件。
另一个可以提高安全性的例子是:
这将从webroot外部访问一个文件。默认的Apache Web用户没有权限查看webroot之外的任何内容,因此他们不应该能够访问public_index.php(除非他们获得了能够访问的用户的凭据,例如root用户)。
一个真实世界的应用程序是WordPress的wp-config.php文件,它可以放在服务器的webroot之外。
关于使用require和require_once的区别,require()函数包含并评估指定的文件,而require_once()函数只有在同一页中之前未包含过时才会包含。因此,当您想要包含一个包含许多函数的文件时,建议使用require_once()函数,这样可以确保不会重复包含文件,也不会出现“函数重复声明”的错误。
希望这能帮到你。