php实现任意文本文件的模板替换

原理

php的模板替换功能很强大,不仅仅可以用于网页,实际上可以用于任何文本文件的模板替换。因此对于一些代码的自动生成需求来说,php的模板替换是一个很强大的功能。php 执行一个文件时,在<?php ...?>之外的内容会原封不动地输出,<?php ...?>内部的内容会动态执行。再配合操作系统的重定向命令,可以很方便地将替换后的结果写入文件。

示例

下面用一个具体的例子来加以说明。假设有如下一个文本文件:

张三你好:

下面这几天该上课:
周二要上数学课
周三要上语文课
周五要上体育课

其它时侯都可以睡懒觉!

可以发现 上面文档中的课程安排是需要重复生成的,如果用模板替换的方式来自动生成,就会很方便。
为此我们准备一个模板文件如下:

template.txt

这是一个模板替换的例子

<?=$person?>你好:

下面这几天该上课:
<?php foreach ($weekTask as $key =>$value) { ?>
<?=$key?>要上<?=$value?>课
<?php } ?>

其它时侯都可以睡懒觉!

进行模板替换操作的php加载文件

templateWorker.php

<?php

//用于替换的模板变量
$person= '张三';
$weekTask =['周二'=>'数学','周三'=>'语文','周五'=>'体育'];

//加载模板文件,输出内容就是要生成的结果
require_once "template.txt"; 

?>

运行加载文件,重定向生成结果文件的脚本

make.bat

php templateWorker.php > output.txt

这个脚本的功能很明确,就是运行加载文件templateWorker.php,将其从标准输出的内容重定向到output.txt。
将以上三个文件放在同一个目录下,双击运行make.bat,就会得到结果文件output.txt。

补充说明一下:要实现这个效果,必须保证在命令行中可以运行php.exe .因此有必要将php.exe所在的目录加入到操作系统的环境变量path中去。如果是linux或mac os。php往往是预先就装好的,随时可以运行,就少了这一步的麻烦。

output.txt

这是一个模板替换的例子

张三你好:

下面这几天该上课:
周二要上数学课
周三要上语文课
周五要上体育课

其它时侯都可以睡懒觉!

这样就达到了通过模板替换生成结果文件的效果。如果对php编程中的网页替换比较熟悉的朋友就会发现在替换语法上是完全一模一样的。只是有的人会将php局限在网页开发上,但实际上php也是一个很强大的命令行工具。在批处理,自动代码生成方面都有很广的应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值