Pain 全世界最小最简单的PHP模板引擎 (普通版)


Posted in PHP onOctober 23, 2011

打包下载

Pain.php

<?php 
class Pain 
{ 
public $var=array(); 
public $tpl=array(); 
//this is the method to assign vars to the template 
public function assign($variable,$value=null) 
{ 
$this->var[$variable]=$value; 
} 
public function display($template_name,$return_string=false) 
{ 
//first find whether the tmp file in tmp dir exists. 
if(file_exists("tmp/temp_file.php")) 
{ 
unlink("tmp/temp_file.php"); 
} 
extract($this->var); 
$tpl_content=file_get_contents($template_name); 
$tpl_content=str_replace("{@", "<?php echo ", $tpl_content); 
$tpl_content=str_replace("@}", " ?>", $tpl_content); 
//create a file in the /tmp dir and put the $tpl_contentn into it, then 
//use 'include' method to load it! 
$tmp_file_name="temp_file.php"; 
//$tmp is the handler 
$tmp=fopen("tmp/".$tmp_file_name, "w"); 
fwrite($tmp, $tpl_content); 
include "tmp/".$tmp_file_name; 
} 
} 
?>

test.php
<?php 
require_once "Pain.php"; 
$pain=new Pain(); 
$songyu="songyu nb"; 
$zhangyuan="zhangyuan sb"; 
$pain->assign("songyu",$songyu); 
$pain->assign("zhangyuan",$zhangyuan); 
$pain->display("new_file.html"); 
?>

new_file.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>new_file</title> 
</head> 
<body> 
{@$songyu@}<br/> 
{@$zhangyuan@} 
</body> 
</html>
PHP 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
一个目录遍历函数
Oct 09 PHP
第十一节--重载
Nov 16 PHP
php 魔术函数使用说明
Feb 21 PHP
php实现图片添加水印功能
Feb 13 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
php封装的验证码类分享
Feb 26 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
供参考的 php 学习提高路线分享
Oct 23 #PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 #PHP
PHP中读写文件实现代码
Oct 20 #PHP
Array of country list in PHP with Zend Framework
Oct 17 #PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 #PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 #PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 #PHP
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
javascript中的面向对象
2017/03/30 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
Django使用多数据库的方法
2017/09/06 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python单元测试简单示例
2018/07/03 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
为什么称python为胶水语言
2020/06/16 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
python os.rename实例用法详解
2020/12/06 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
接收函格式
2015/01/30 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
如何利用React实现图片识别App
2022/02/18 Javascript
Golang gRPC HTTP协议转换示例
2022/06/16 Golang