PHP 替换模板变量实现步骤


Posted in PHP onAugust 24, 2009

1.首先需要打开一个文件.这里用到了PHP ->fopen();函数
定义和用法
fopen() 函数打开文件或者 URL。
如果打开失败,本函数返回 FALSE。
函数原型:
fopen(filename,mode,include_path,context)
https://3water.com/w3school/php/func_filesystem_fopen.asp.htm
说明
fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。
如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。
如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
对 context 的支持是 PHP 5.0.0 添加的。
提示和注释
注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。
2.打开这个文件以后,对这个文件进行读取.这里用到了PHP ->fread();函数
定义和用法
fread() 函数读取文件(可安全用于二进制文件)。
函数原型:
fread(file,length) //备注:我才知道.这个函数获取到的文件是按字节(Byte)来计算文件大小的....
https://3water.com/w3school/php/func_filesystem_fread.asp.htm
说明
fread() 从文件指针 file 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。
返回所读取的字符串,如果出错返回 false。
提示和注释
提示:如果只是想将一个文件的内容读入到一个字符串中,请使用 file_get_contents(),它的性能比 fread() 好得多。
例子 1
从文件中读取 10 个字节:

<?php 
$file = fopen("test.txt","r"); 
fread($file,"10"); 
fclose($file); 
?> 
<?php $file = fopen("test.txt","r"); fread($file,"10"); fclose($file); ?>

例子 2
读取整个文件:
<?php 
$file = fopen("test.txt","r"); 
fread($file,filesize("test.txt")); 
fclose($file); 
?> 
<?php $file = fopen("test.txt","r"); fread($file,filesize("test.txt")); fclose($file); ?>

3.开始替换模板变量.这里用到了PHP->str_replace();函数
定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
函数原型:
str_replace(find,replace,string,count)
https://3water.com/w3school/php/func_string_str_replace.asp.htm
提示和注释
注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。
注释:该函数是二进制安全的。
3.替换模板变量后.使用PHP->echo();函数进行输出
编码部分:
$title="测试标题"; 
$file="测试内容"; 
//打开这个模板 
$tempdata=fopen("test.html","r"); 
//读取模板中的内容 
$str=fread($tempdata,filesize("test.html")); 
//替换模板中的内容 
$str=str_replace('{$title}',$title,$str); 
$str=str_replace('{$center}',$file,$str); 
//输出 
echo $str;
PHP 相关文章推荐
php下intval()和(int)转换使用与区别
Jul 18 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
PHP 开源AJAX框架14种
Aug 24 #PHP
PHP 开源框架22个简单简介
Aug 24 #PHP
php xml留言板 xml存储数据的简单例子
Aug 24 #PHP
建站常用13种PHP开源CMS比较
Aug 23 #PHP
怎样去阅读一份php源代码
Aug 21 #PHP
php win下Socket方式发邮件类
Aug 21 #PHP
Discuz 模板语句分析及知识技巧
Aug 21 #PHP
You might like
调整PHP的性能
2013/10/30 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
javascript 写类方式之五
2009/07/05 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
实例浅析js的this
2016/12/11 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
Python中的列表知识点汇总
2015/04/14 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
基于python时间处理方法(详解)
2017/08/14 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python with (as)语句实例详解
2020/02/04 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
生日宴会主持词
2014/03/20 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
思想品德评语大全
2014/12/31 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
JVM之方法返回地址详解
2022/02/28 Java/Android