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 动态执行带有参数的类方法
Apr 10 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
JS 网站性能优化笔记
May 24 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
Symfony查询方法实例小结
Jun 28 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP写API输出的时用echo的原因详解
Apr 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 图片上传代码
2011/09/13 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python http基本验证方法
2018/12/26 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python实现静态服务器
2019/09/05 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
关于爱情的广播稿
2014/01/16 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
横店影视城导游词
2015/02/06 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js