当前位置: 首页 > news >正文

网站截图可以做证据吗/互联网推广软件

网站截图可以做证据吗,互联网推广软件,网络营销网站建设设计方案,国外商城网站设计最近在开发的时候,遇到了在有html模板的情况下,每天生成数据报表的需求,如果用框架太重了,就想自己简单的模板来实现,这样简单实用,顺便记录下原理。 一. 模板引擎原理 php是网页内嵌型的语言&#…

 最近在开发的时候,遇到了在有html模板的情况下,每天生成数据报表的需求,如果用框架太重了,就想自己简单的模板来实现,这样简单实用,顺便记录下原理。
  一. 模板引擎原理
     php是网页内嵌型的语言,利用〈?php ?〉标签嵌入到html文本中,然后由php的解释器去执行,动态生成页面。 但是对于大型的web应用,一般分为前端, 后台业务逻辑,及数据层。为了项目协作和分工,当然需要将前端和业务逻辑分离,前端专注于界面展示,后端程序负责逻辑处理。 这样使得改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

分离之后的两部分怎么实现连接呢? 逻辑层的数据如何传递给模板页面呢? 模板页面的动态数据项采用什么规则预先展示呢?

这是就需要这样一个“桥梁”来解决这个问题,即 模板引擎。

 一般来说需要两个类来实现,分别是模板引擎入口类和模板解析类。 mytpl.class.php文件通常定义一个类MyTpl,类中需定义一个数组tpl_var[]用于存放tpl.html中自定义内容标签的参数。MyTpl.Compile.class.php,解析模板文件,的是将tpl.hml中无法识别的的内容标签转换成PHP语句,编译成“templates_c”文件夹下的tpl_c.html中。 

所以一般的模板引用步骤为:

include  “mytpl.class.php文件”;//加载模板引擎$tpl = new MyTpl();//实例化一个模板类$title = “标题”;$content = “内容”;$tpl->assign(“title”,$title);//调用模板类中的方法,分配变量$tpl->assign(“content”,$content);$tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容

整个流程如图所示:

 

 二. 模板引擎简单实现

以下实现了一个最简单的模板引擎,不含模板解析类:

tpl.html:
<html>
<body>
<?php echo $str ?>
<br />
<?php print_r($arr) ?>
</body>
</html>
Mytpl.php:
<?php
//include  包含其他文件
//extract  的作用:从数组中将变量导入到当前的符号表,键做变量,值做值!class Mytpl {public $tpl_vars;public $key;public $val;public function assign($tpl_var,$value){if (is_array($tpl_var)) {foreach ($tpl_var as $_key => $_val) {if ($_key != '') {$this->tpl_vars[$_key] = $_val;}}} else {if ($tpl_var != '') {$this->tpl_vars[$tpl_var] = $value;}}}public function display($tpl){$this->assign($this->key,$this->val);extract($this->tpl_vars);if(file_exists($tpl)){  //模板存在就加载文件。//include $tpl;ob_start();include $tpl;$contents = ob_get_contents();ob_end_clean();return $contents;}else{return false;}}
}$tpl = new Mytpl;$arr = array('a'=>'aaaaaaa','b'=>array('a'=>'111111','b'=>'22222','c'=>'3333'),'c'=>'ccccccc','d'=>'dddddd','e'=>'eeeee');
$str = '我是字符串';
$tpl->assign('arr',$arr);
$tpl->assign('str',$str);
$message =  $tpl->display('tpl.html');
echo $message;?>

其中使用到了extract函数,从数组中将变量导入到当前的符号表,键做变量,值做值!

同时导入模板使用了include 函数,从include该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中需要作为 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。(所以需要模板解析类编译模板)。同时将inlcude的文件“包含”到一个变量中的方法是用输出控制函数结合 include 来捕获其输出。

 

如果template文件没有改动,那麽该模板文件就不需要被重新编译,所以可以在模板引擎中添加缓存机制,提升访问速度。

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一,定义了smarty的语法规则和缓存等特性,性能和使用性都非常好。

同时可以参考这个smart的简单实现http://www.cnblogs.com/isuhua/archive/2013/04/13/3019377.html

 

转载于:https://www.cnblogs.com/snailding/p/4420086.html

http://www.jmfq.cn/news/5128201.html

相关文章:

  • 淘宝网站建设属于什么类目/腾讯效果推广
  • 自己制作上传图片的网站怎么做/网站seo完整seo优化方案
  • 网站内容建设的布局和结构图/代写企业软文
  • 怎么查域名注册商/seo排名优化代理
  • wordpress 更改logo/潍坊seo按天收费
  • 龙泉做网站哪家好/莆田百度推广开户
  • 证明做二维码打款网站链接/seo超级外链工具免费
  • 从用户需求看b2b网站的营销策略/seo网络推广优势
  • 上海网站建设 劲晟/今日军事头条新闻
  • 网站建设在整体布局有哪些要求/seo综合查询
  • 为什么做视频网站违法/潍坊网站外包
  • seo做的最好的网站/电商培训机构排名
  • 装饰网站建设网/网络软文名词解释
  • 有做a50期货的网站/苏州网站制作
  • wordpress建站教程交友/百度下载app安装
  • 淄博的大型网站建设/短视频代运营公司
  • 网站建设英文怎么说/杭州专业seo服务公司
  • 代码大全可复制免费/抖音seo关键词优化
  • 网站建设渠道/b站软件推广大全
  • 二手商城网站建设论文/平台营销策略
  • 网站制作cms/外链群发平台
  • 做网站怎么招广告/seo网络推广哪家专业
  • 专业开发网站设计/东莞网络推广策略
  • 东莞品牌网站建设费用/免费的行情网站app软件
  • 团购火锅自助网站建设/2022年免费云服务器
  • 深圳网站制作公司建设/长沙靠谱关键词优化服务
  • 金融手机网站开发/品牌网站建设方案
  • 网站后台密码/百度快速查询
  • 做经营性的网站需要注册什么条件/官方百度app下载
  • 网站建设网络推广代理公司/北京百度搜索优化