Smarty中include_php的使用???

jxyuhua 2004-04-08 11:46:46
以下是Smarty中include_php的源代码:
load_nav.php

<?php

// load in variables from a mysql db and assign them to the template
require_once("MySQL.class.php");
$sql = new MySQL;
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
$this->assign('sections',$sql->record);

?>

index.tpl
---------

{* absolute path, or relative to $trusted_dir *}
{include_php file="/path/to/load_nav.php"}

{foreach item="curr_section" from=$sections}
<a href="{$curr_section.url}">{$curr_section.name}</a><br>
{/foreach}

我不太清楚,这样做的好处是什么?
既然变量$sections已经传给Smarty模板文件了,那再在模板文件里包含PHP文件有什么作用呢?直接使用那个变量不就可以了吗?
能不能给几个include_php的例子,让我明白它的好处是什么,多谢。
...全文
418 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
feixuehenshui 2004-04-15
我感觉老大说的对
回复
yueyang 2004-04-13
include php是一种开源的办法,如果你加密了你的主程序,它就非常重要。
回复
skystar008 2004-04-13
include只是一种方便的分离方法.
回复
jxyuhua 2004-04-12
没人再回答了吗?
回复
jxyuhua 2004-04-10
稍微明白一点了
回复
xuzuning 2004-04-09
Smarty将是将模板翻译成php程序的,使用include_php可以把不好用模板表示的程序段一并放在生成后的程序里
回复
xylegend 2004-04-09
up
回复
ige1976 2004-04-08
我觉得跟$this->assign有关系,如果调入index.tpl;然后再解析,可能就不需要了。

我也是初步,不知道对不对。
回复
unixdotnet 2004-04-08
mistjin(熟读唐诗三百首):对于你举的例子只能这样解决吗?
回复
mistjin 2004-04-08
include_php 是解决模板部件化的好方法,它使得 php 代码从模板文件中被分离出来. 举个例子:假设有一个从数据库中动态取出数据用于显示站点导航的模板,你可以将得数据内容的 php 逻辑部分分离出来保存在一个单独的文件夹下,并在模板开始的位置包含该 php 脚本. 那么就可以在任何地方包含此模板而不用担心之前数据库信息是否已被程序取出.
回复
feixuehenshui 2004-04-08

没有用过INCLUDE_PHP
include file道是经常用


回复
unixdotnet 2004-04-08
应用模板(smarty等)是为了分离显示与逻辑,index.tpl应该避免使用{include_php},否则失去原有的意义。想想是不是非用不可。
回复
52juanjuan 2004-04-08
从后往回看问题,是有帮助的,支持楼上的说法
回复
countstars 2004-04-08
只要是在编译后使用的,都要向Smarty注册变量,包含后一块编译的,你打开编译后文件看一下就知道怎么回事了,没有注册的变量在Smarty中不可用
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告