设为首页 收藏本站
查看: 1740|回复: 0

[经验分享] PHP文件包含include(),require(),require_once()

[复制链接]

尚未签到

发表于 2017-3-31 08:41:51 | 显示全部楼层 |阅读模式
  当页面中再三重复用到同样的内容时,用include()函数包含文件,这个方法可以简化编码工作。例如,关联相同的数据库;在页面的页眉或页脚显示相同的HTML。类似的应用不胜枚举。那么如何来应用呢? 

<html> 
<body> 
<?php 
include ("example.inc"); 
?> 
</body> 
</html> 

现在来看一下,在“example.inc”文件中,如果加入如下的代码: 

<?php 
$hello = "Hello World"; 
echo $hello; 
?> 

就和把它们全部直接写到前面的代码中一样。唯一要注意的是必须把PHP分隔符(上述代码的首行和末行)也加入被包含的文件中,否则这些代码仅仅在那里显示而不被执行。实际上可以指定任何包含文件的名字,用.inc文件名是为了来把它们和其他PHP脚本中分隔开。也可以用下面方法实现, 

<?php 
require ("example.inc"); 
?> 

这和上面的include()函数包含有什么区别呢?如果用require()函数包含的文件不存在,那么当运行脚本时程序就停止运行并给出错误信息。如果是用include包含的话,则显示一条警告,仍继续执行脚本。在我们下面的例子中,就是一个可能出现错误例子。用include()函数包含时候出现如下错误提示: 

Warning: Failed opening 'hello.inc' for inclusion (include_path='') in /tutorial/9.php on line 6 

如果用require()函数包含文件,可能出现以下错误信息: 

Fatal error: Failed opening required 'hello.inc' (include_path='') in /tutorial/9.php on line 6 

看到里边的细微差别了吗?用require包含文件的话,给出了一个“严重错误;而用include()函数包含文件只给出一个“警告”。 

用包含文件唯一的问题是是否在包含文件中保存了密码。既然当连接数据库时,PostgreSQL 不用密码(至少本例中不用),那这个问题就不重要了。在以后的例子中,我们会用一个文件来包含所有信息。 

[补充--by Boban] 
1). 两者的区别是,require()函数包含进来的内容是作为整个文档的一个组成,而include()函数则不是。在一个正确的PHP程序中,使用require()函数的时候,如果包含进来的文件语法或者其他错误,则整个文档的PHP脚本都不再运行;如果使用include()函数包含的时候,程序只在有语法错误的地方提示错误,而PHP脚本的其他正确的部分继续运行。 
2). include()函数可以使用在条件语句、循环控制语句中,例如if(1==1),来判断是否需要包含该文件,而require()函数将忽略这些条件,不管3721统统包含进来。 
3). 如果包含文件中定义了变量、函数、类等,最好使用include()函数,并且做一个宏定义,例如if(!define("_EXAMPLE_INC")) define("_EXAMPLE_INC",1);语句防止重复包含而导致错误。

  【补充--by 啸笑天】
   1)request_once()语句在脚本执行期间包含并运行指定文件。此行为和request()语句类似,唯一的区别是如果该文件中的代码已经被包含了,则不会再次包含。
  request_once()应用于在脚本执行旗舰同一个文件有可能被包含超过一次的情况下,想确保他只被包含一次以避免函数重定义,变量重新赋值等问题。
  返回值和include()相同。如果文件已被包含,本函数返回TRUE。
  2)require()类似于jsp的 < %@ include file=” ”%>指令;include()类似于< jsp:include page=” ” flush=”true”/>行为
  感谢:http://sangai.iteye.com/blog/459045

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-357891-1-1.html 上篇帖子: 虚拟主机的默认php.ini文件 下篇帖子: PHP服务器变量$_SERVER详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表