知识大全 PHP中获得$Smarty.capture.name截获的输出

Posted

篇首语:幼敏悟过人,读书辄成诵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP中获得$Smarty.capture.name截获的输出相关的知识,希望对你有一定的参考价值。

PHP中获得$Smarty.capture.name截获的输出  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  想要获得$smarty >display后的输出 并作为字符串赋给php变量有两种方法:

   ob_start

  ob_start();

  $smarty >display( StockNews/getLeft tpl );

  $string = ob_get_contents();

  ob_end_clean();

   $smarty >_smarty_vars[ capture ][ captureName ];

  $smarty >display( StockNews/getLeft tpl );

  $string = $smarty >_smarty_vars[ capture ][ captureName ];

  //captureName为capture name=banner中的name;

  //方法需在tpl中使用capture捕获输出

  //和第一种原理是一样的 查看编译的php的到

  //php $this >_smarty_vars[ capture ][ captureName ] = ob_get_contents(); ob_end_clean(); ?>

  //不难看出smarty的capture正是使用了php的ob_start方法

  总结 这个技巧在部分静态化页面中很有用处 也就是说 当使用了smarty 而且某页面需一部分静态 一部分动态输出时 可以利用上述方法

  我在smarty中静态页面时 采用这种方法

   static

   index php

   includeStatic tpl

   index tpl

   needStatic tpl

  index php //主页 此页中分需静态部分及动态输出部分

  <?PHPif(file_exists( static ))//存在静态页输出静态页//使用capture截获包含静态页后的输出$smarty >assign( filename static );$smarty >display( includeStatic tpl );//动态输出部分$num = rand( );$smarty >assign( num $num );//再次display 输出index$smarty >display( index tpl );else//不存在静态页往下继续运行 并生成静态页//这里使用上述方法 动态获得需静态部分的输出 这里使用的方法一 同样也可以使用方法二ob_start();//假如要静态数组$array在display后的输出$smarty >assign( array $array);$smarty >display( needStatic tpl );//将动态输出内容存至$string变量$string = ob_get_contents();ob_end_clean();//生成静态页$handle = fopen( static wb );fwrite($handle $string);fclose($handle);//动态输出部分$num = rand( );$smarty >assign( num $num );//输出index$smarty >display( index tpl );?>static //此页是主页中静态部分产生的静态页

  我是静态页!

  includeStatic tpl //假如存在静态页 则通过display此页截获一个输出(用在index中的)

  capture name=staticed

  include file=$filename

  /capture

  needStatic tpl //没有已静态好的页面时 动态生成静态页 此处为主页静态部分的tpl

  capture name=staticed

  section name=a loop=$array

  $array[a]

  /section

  /capture

  index tpl //首页输出 包括静态及动态部分 注 无论静态是否存在 都会通过capture截获输出 用在此页

  我是首页

  这里是静态部分

  $smarty capture staticed

  这里是动态部分

  $num

cha138/Article/program/PHP/201311/21345

相关参考

知识大全 用php来获得客户端服务器ip的方法

  <?php  echo"当前脚本服务器的主机名"gethostbyaddr($_SERVER[REMOTE_ADDR])"<br/><hr/>";echo"获得当前运

知识大全 使用php判断网页是否gzip压缩

  昨天晚上群里有朋友采集网页时发现file_get_contents获得的网页保存到本地为乱码响应的header里ContentEncoding:gzip但在浏览器里看是正常的因为我有过相关经验马上

知识大全 PHP中$

PHP中$  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!$_SERVER[PHP_SELF]#当前

知识大全 解析php中curl

php的multi_curl功能慎用因为某些版本的curl和php的搭配有Bug所以你调试过没问题的代码很可能在别的机器上不正确   相信许多人对php手册中语焉不详的curl_multi一

知识大全 javascript中可以直接写php代码

  一在javascript中嵌入php代码  javascript若是通过js文件包含进来的那么js文件中也可以直接写php代码只不过包含js文件是扩展名要改成php如  <scripther

知识大全 解析php php

本篇文章是对php中php_openssldll的作用进行了详细的分析介绍需要的朋友参考下   一openssl简介数据加密是信息信息传输中的一个重要组成部分任何信息都以明文方式传输确实是个

知识大全 解析PHP中$

解析PHP中$  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  $_FILES数组内容如下:$_F

知识大全 javascript中直接写php代码的方法

这篇文章介绍了javascript中直接写php代码的方法有需要的朋友可以参考一下   一在javascript中嵌入php代码javascript若是通过js文件包含进来的那么js文件中也

知识大全 php中输出变量加大括号作用

  php输出变量加大括号这是什么写法?看下面一段代码代码如下复制代码  <?php  header("ContentType:text/;charset=utf");  $test="变量";

知识大全 在PHP中如何判断AJAX请求

在PHP中如何判断AJAX请求  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何在PHP中判断