欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP 替换模板变量实现步骤

程序员文章站 2023-11-28 19:14:40
1.首先需要打开一个文件.这里用到了php ->fopen();函数 定义和用法 fopen() 函数打开文件或者 url。 如果打开失败,本函数返回 false。...
1.首先需要打开一个文件.这里用到了php ->fopen();函数
定义和用法
fopen() 函数打开文件或者 url。
如果打开失败,本函数返回 false。
函数原型:
fopen(filename,mode,include_path,context)
//www.jb51.net/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)来计算文件大小的....
//www.jb51.net/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)
//www.jb51.net/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;