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和ACCESS写聊天室(七)
Oct 09 PHP
php 中文处理函数集合
Aug 27 PHP
php递归列出所有文件和目录的代码
Sep 10 PHP
php与php MySQL 之间的关系
Jul 17 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php删除数组中重复元素的方法
Dec 22 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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数组输出html表格的方法
2014/02/24 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
JS中准确判断变量类型的方法
2020/06/01 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python中实现输入一个整数的案例
2020/05/03 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
大学生求职自我评价
2014/01/16 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
运动会演讲稿300字
2014/08/25 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
MySQL 原理与优化之Update 优化
2022/08/14 MySQL