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中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
php+ajax 文件上传代码实例
Mar 18 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
Webpack实战加载SVG的方法
2017/12/26 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Python类如何定义私有变量
2020/02/03 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
项目总经理岗位职责
2014/02/14 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
政风行风整改方案
2014/10/25 职场文书
道士塔读书笔记
2015/06/30 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL