PHP include() 或 require()

13 浏览
0 Comments

PHP include() 或 require()

我了解include()、require()、include_once()和require_once()的功能和区别。请问有人能告诉我它们在项目中的一些实际应用呢?我知道常用函数可以存储在一个单独的文件中,并且可以导入以提高可管理性。

除此之外,它们还有哪些常见的使用方式呢?比如在数据库访问时等等。它们能用来提高安全性等吗?

0
0 Comments

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()函数,这样可以确保不会重复包含文件,也不会出现“函数重复声明”的错误。

希望这能帮到你。

0