PHP脚本的10个技巧(3)


Posted in PHP onOctober 09, 2006

包含文件
如果你目前着手的Web站点开发项目规模较大,那你对代码重用必定深有体会,比方说,不管是HTML还是PHP代码块,只要项目足够大,比如有1000个Web页,你即便是一年只修改一次包含版权信息的页脚也会让你痛不欲生。

而PHP可以通过一些函数帮助你重用代码,你要具体用到的函数依赖于你打算重用的内容。

主要的函数是:

* include() 和 include_once()
* require() 和require_once()

include()函数包含给定的文件,比如:

include('/home/me/myfile');

包含文件中的任何代码都将在include() 所在的代码页的变量范围之内执行。你可以包含服务器上的静态文件或者包含在其他服务器上的目标文件,方法是组合使用include()和fopen()。

include_once()函数和include()函数功能类似,只是该函数会检查被包含文件内的代码是否已经被目前的脚本所包含过。如果代码已经被脚本所包含,该函数就不再包含相应的文件了。

require()函数用给定文件的内容取代自身。这一替换过程发生在PHP引擎编译你的代码而不是执行代码阶段,这可和include()不一样,后者首先被计算再加到文挡中。require()函数多用于静态元素,而include()函数则主要用于动态元素。和include_once()类似,require_once()函数会检查给定代码是否早已经插入到了文挡内,如果这样,给定代码就不会被再次插入文档。

我建议你最好对诸如版权、静态文本和其他不含变量的元素这类信息采用require函数,那些依赖其他脚本来实现自己内容的元素也最好采用require函数,例如:

<HTML>
<HEAD><TITLE>Something</TITLE></HEAD>
<BODY>
[a lot of content]

<?
// insert copyright
require('/home/me/mycopyright');
?>

</BODY>
</HTML>

另一方面,我经常用include()函数把函数库或类似的内容放到脚本之外:

<?
// get my function library
include('/home/me/myfunctions');

// do PHP things with my functions ?>

<HTML>
<HEAD><TITLE>Something</TITLE></HEAD>
<BODY>
[a lot of content]
</BODY>
</HTML>

你肯定会问:“那么,被included或者被required的文件都来自哪里呢?”答案很简单:“你的系统。”不过,有时,有些代码会包含了诸如带有用户名和密码的数据库连接函数之类的安全信息,在这样的情况下,显而易见,你肯定不希望这些东西也成为文档的一部分弄得全世界都知道。

你可以把包含文件(included或者required)放在系统的任何地方,只要用户所能用到的PHP可以访问这些文件即可。你还可以给这些文件以任何你希望给出的文件扩展名,或者不设扩展名。

使用include()和require()函数可以让Web站点上普遍存在或者经常变动的元素变得更加容易处理。

PHP 相关文章推荐
PHP执行速率优化技巧小结
Mar 15 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php获取字段名示例分享
Mar 03 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
laravel配置Redis多个库的实现方法
Apr 10 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 PHP
PHP实现简单的计算器
Aug 28 PHP
社区(php&amp;&amp;mysql)六
Oct 09 #PHP
判“新”函数:得到今天与明天的秒数
Oct 09 #PHP
社区(php&amp;&amp;mysql)五
Oct 09 #PHP
社区(php&amp;&amp;mysql)四
Oct 09 #PHP
社区(php&amp;&amp;mysql)三
Oct 09 #PHP
利用php来自动调用不同服务器上的flash
Oct 09 #PHP
如何做到多笔资料的同步
Oct 09 #PHP
You might like
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
php简单实现数组分页的方法
2016/04/30 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
javascript中this的用法实践分析
2019/07/29 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
django基于restframework的CBV封装详解
2019/08/08 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
flask框架中的cookie和session使用
2021/01/31 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
理工科学生的自我评价
2013/12/15 职场文书
啤酒节策划方案
2014/05/28 职场文书
董事长助理工作职责
2014/06/08 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
保留意见审计报告
2015/06/05 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL