smarty模板中include和include_php的用法 100

smarty模板中include和include_php的用法include_php包含的文件的路径是怎样的,以及工作原理是先执行主文件还是先执行include_php进... smarty模板中include和include_php的用法
include_php包含的文件的路径是怎样的,以及工作原理
是先执行主文件还是先执行include_php进来的文件,对包含进来的PHP文件有什么要求?请各位高手指点下,谢谢!
网上的那片文章到处都是,请不要复制过来给我看,因为那片文章写的不好,一般的人都看不懂,看了include_php还是用不来,所以我希望有哪位高手写一点实际的经验,orz!!
展开
 我来答
悟煜2B
2006-04-30 · 超过13用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
我们可以在模板内载入PHP程序或者另一个子模板.分别可以使用include_php及include这两个Smarty模板语法.俺习惯用include 啦.
在使用include 时,我们可以预先载入子模板,或者动态载入子模板.预先载入通常使用在有共同的文件标头或者版权什么的.而动态载入则可以用在同一的框架页,这样就可以换皮肤一样换界面啦.两者也可以同时混用.是情况八.
test.php---------
<?php
require "main.php";
$tpl->assign("title", "Include Test");
$tpl->assign("content", "这是模板1.htm的参数");
$tpl->assign("dyn_page", "3.htm");
$tpl->display('test.htm');
?>
模板templates下面
test.htm----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title><{$title}></title>
</head>
<body>
<{include file="1.htm"}><br />
<{include file=$dyn_page}>
<{include file="2.htm" custom_var="自己定义变量的内容"}>
</body>
</html>

1.htm----
<{$content}>
2.htm----
<{$custom_var}>

吃饭后继续

OK,下面我将尽力解释下include_php
include_php这个标签通常用来在你的模板文件中include一个php文件.这个php文件一般在这个本地路径的文件夹下面.include_php这个标签必须有file这个属性.用来包含应用php文件的路径的人.可以是相对路径,也可以是绝对路径.{include_php file="/path/to/load.php"}

include_php是一种非常好的模板组建句柄.使php代码和模板文件分离开来.举例来说吧.比较直观点.比如你有个模板是用来显示你的网站导航的.当然导航的内容是动态的从数据库中获取.这时你可以将php联接数据库的获取内容放在一个php文件中,然后在模板文件中include_php file=xxxxx.php这样,你可以在任何地方应用这个导航模板.而不需要再次做联结导航内容的工作啦.
通常,php文件默认只能包含一次.如果你一定要多次引用,那么可以增加once属性设置为false就可以拉.

给出实际例子啦(来自手册)
function 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}
---------
回答完毕,谢谢大家得掌声.哇哈哈
imsuperman1015
2012-08-02 · TA获得超过203个赞
知道答主
回答量:100
采纳率:0%
帮助的人:104万
展开全部
中国人很懒,,一个比较难缠的问题 百度一搜 答案链接百万 可答案呢? 都是一样的。

因为不是亲身试验,看到帖子 (就算自己没碰到过,但是觉得是个问题的帖子就转贴,或收藏)

我找 include_php 的问题也找了很久,不知道为什么 一是用就出错。

后来发现了。 我么用 smarty 都会习惯性的
$tpl = new Smarty();
来实例化一个对象。

楼主试一下
$tpl -> new SmartyBC();
然后在莫一个 tpl 中 使用
{include_php file="test.php"}

注意: 如果按照上述的方式导入 test.php 的话 这个 test.php文件必须要和 index 入口文件在一起。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式