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 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
php微信开发之关注事件
Jun 14 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
php session_decode函数用法讲解
May 26 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP可变函数学习小结
2015/11/29 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
setTimeout学习小结
2017/02/08 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
python lambda的使用详解
2021/02/26 Python
html5 标签
2009/07/16 HTML / CSS
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
公司门卫管理制度
2014/02/01 职场文书
户外婚礼策划方案
2014/02/08 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
技术股份合作协议书
2014/10/05 职场文书
教师节大会主持词
2015/07/06 职场文书
2015年卫生局工作总结
2015/07/24 职场文书