知识大全 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 echo"当前脚本服务器的主机名"gethostbyaddr($_SERVER[REMOTE_ADDR])"<br/><hr/>";echo"获得当前运
昨天晚上群里有朋友采集网页时发现file_get_contents获得的网页保存到本地为乱码响应的header里ContentEncoding:gzip但在浏览器里看是正常的因为我有过相关经验马上
PHP中$ 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!$_SERVER[PHP_SELF]#当前
php的multi_curl功能慎用因为某些版本的curl和php的搭配有Bug所以你调试过没问题的代码很可能在别的机器上不正确 相信许多人对php手册中语焉不详的curl_multi一
一在javascript中嵌入php代码 javascript若是通过js文件包含进来的那么js文件中也可以直接写php代码只不过包含js文件是扩展名要改成php如 <scripther
本篇文章是对php中php_openssldll的作用进行了详细的分析介绍需要的朋友参考下 一openssl简介数据加密是信息信息传输中的一个重要组成部分任何信息都以明文方式传输确实是个
解析PHP中$ 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! $_FILES数组内容如下:$_F
这篇文章介绍了javascript中直接写php代码的方法有需要的朋友可以参考一下 一在javascript中嵌入php代码javascript若是通过js文件包含进来的那么js文件中也
php输出变量加大括号这是什么写法?看下面一段代码代码如下复制代码 <?php header("ContentType:text/;charset=utf"); $test="变量";
在PHP中如何判断AJAX请求 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何在PHP中判断