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分页函数
Jul 08 PHP
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
常用的php对象类型判断
Aug 27 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
php中require和require_once的区别说明
Feb 27 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
php实现的CSS更新类实例
Sep 22 PHP
Yii配置文件用法详解
Dec 04 PHP
php开发工具有哪五款
Nov 09 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
JS实现的抛物线运动效果示例
2018/01/30 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python虚拟环境项目实例
2017/11/20 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
numpy.random模块用法总结
2019/05/27 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
如何设置Java的运行环境
2013/04/05 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
美容院经理岗位职责
2014/04/03 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
Python类方法总结讲解
2021/07/26 Python