php开发模板(PHP模板引擎)

php开发模板,原文标题:分享一个非常简单好用的php模板引擎。因为最近准备开发一套php分布式系统,采用主配置文件

php开发模板,原文标题:分享一个非常简单好用的php模板引擎。

因为最近准备开发一套php分布式系统,采用主配置文件通用,每个模块遵守开发规范独立开发,独立部署到服务器上,整套系统只共用会员数据。

每个模块开发数据api 接口,供主程序调用数据报表做分析。

主要面向企业客户,用于企业采购、销售订单管理,仓储库存管理,企业财会,客户管理等等。

另外对外是b2b,面向客户运营,暂时可能对接其它的系统,减少开发量。

大家有好的架构建议可以提出来,因为我只有一个人开发,所以尽量简单的开发。以后慢慢完善。

具体怎么架构还在筹划中,下面是我在项目中刚刚写的一个php 模板引擎,喜欢的朋友可以拿去。

在htm 模板中使用方法

循环调用

{loop $lists $i $t}

<a href=”{$t[linkurl]}”>{$t[title]}</a>

{/loop}

直接调用变量

{$title}

php 文件引入函数 template($name = ‘index’, $dir = ”); 即可

下面是引擎代码

<?php

function template($name = ‘index’, $htmdir = ”,$phpdir=”) { //模板引入函数

$htmlfile = $htmldir.’/’.$name.’.htm’; //静态文件地址

$phpfile = $phpdir.’/’.$name.’.php’; //编译文件地址

if(!is_file($phpfile)){ //判断编译文件存在否

//调用模板编译函数对html 模板进行php编译

template_cache($htmlfile,$phpfile);

}

include $phpfile;

}

//构造一个模板编译函数

function template_cache($htmlfile, $phpfile) {

$content = template_replace(@file_get_contents($htmlfile)); //这里引入替换函数将htm中的标签替换成php

file_put_contents($phpfile, $content); //将静态替换好的文件保存到当前模型的缓存目录下

}

//htm 标签替换

function template_replace($str) {

$str = preg_replace(“/<!–[(. ?)]–>/”, “”, $str);

$str = preg_replace(“/<!–{(. ?)}–>/s”, “{1}”, $str);

$str = preg_replace(“/{templates ([^}] )}/”, “<?php include template(1);?>”, $str);

$str = preg_replace(“/{phps (. )}/”, “<?php 1?>”, $str);

$str = preg_replace(“/{ifs (. ?)}/”, “<?php if(1) { ?>”, $str);

$str = preg_replace(“/{else}/”, “<?php } else { ?>”, $str);

$str = preg_replace(“/{elseifs (. ?)}/”, “<?php } else if(1) { ?>”, $str);

$str = preg_replace(“/{/if}/”, “<?php } ?>rn”, $str);

$str = preg_replace(“/{loops (S )s (S )}/”, “<?php if(is_array(1)) { foreach(1 as 2) { ?>”, $str);

$str = preg_replace(“/{loops (S )s (S )s (S )}/”, “<?php if(is_array(1)) { foreach(1 as 2 => 3) { ?>”, $str);

$str = preg_replace(“/{/loop}/”, “<?php } } ?>”, $str);

$str = preg_replace(“/{([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*(([^{}]*)))}/”, “<?php echo 1;?>”, $str);

$str = preg_replace_callback(“/<?php([^?] )?>/s”, “template_addquote1”, $str);

$str = preg_replace(“/{($[a-zA-Z_x7f-xff][a-zA-Z0-9_ -x7f-xff]*)}/”, “<?php echo 1;?>”, $str);

$str = preg_replace_callback(“/{($[a-zA-Z0-9_[]'”$ -x7f-xff] )}/s”, “template_addquote2”, $str);

$str = preg_replace(“/{([A-Z_x7f-xff][A-Z0-9_x7f-xff]*)}/s”, “<?php echo 1;?>”, $str);

$str = preg_replace(“/'([A-Za-z] )[‘([A-Za-z.] )’](.?)’/s”, “‘1[2]3′”, $str);

$str = preg_replace(“/(r?n)1 /”, “1”, $str);

$str = str_replace(“t”, ”, $str);

$str = “<?php defined(‘IS_HJCMS’) or exit(‘非法访问’);?>”.trim($str);

return $str;

}

function template_addquote1($matches) {

return str_replace(“””, “””, preg_replace(“/[([a-zA-Z0-9_-.x7f-xff] )]/s”, “[‘1’]”, $matches[0]));

}

function template_addquote2($matches) {

return ‘<?php echo ‘.str_replace(“””, “””, preg_replace(“/[([a-zA-Z0-9_-.x7f-xff] )]/s”, “[‘1′]”, $matches[1])).’;?>’;

}

?>

可以封装成template.inc.php 在 项目的配置文件中引入

<?php

include ‘template.inc.php’;

$htmdir = ”; //自己设置

$phpdir = ”;//自己设置

template(‘login’,$htmdir,$phpdir); //

?>

使用起来非常简单,比php的smarty 好用多了

本文《php开发模板(PHP模板引擎)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。

随机文章

网站内容优化
GEO培训
SEO小小课堂网
SEO教程
站长导航
友情链接交换
搜素引擎算法
关键词排名优化

百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:卖螺丝的程序员,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/887482.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注