Smarty 是什么?
为什么使用它?
用例和工作流
语法比较
模板继承
最佳实践
速成课程
{include_php}
已从 Smarty 中废弃,请使用已注册的插件妥善隔离演示和应用程序代码。从 Smarty 3.1 起,只能从SmartyBC获得 {include_php}
标记。
属性名称 | 类型 | 是否需要 | 默认值 | 说明 |
---|---|---|---|---|
file | 字符串 | 是 | 无 | 要作为绝对路径包含的 php 文件的名称 |
once | 布尔值 | 否 | TRUE |
如果多次包含 php 文件,是否可以多次包含 |
assign | 字符串 | 否 | 无 | 将 include_php 输出分配到的变量的名称 |
选项标志
名称 | 说明 |
---|---|
nocache | 禁用已包含 PHP 脚本的缓存 |
{include_php}
标记用于在你的模板中包含一个 php 脚本。属性 file
的路径可以是绝对路径,也可以是相对于$trusted_dir
的相对路径。如果启用了安全性,那么该脚本必须位于安全策略的$trusted_dir
路径中。有关详细信息,请参阅安全性部分。
默认情况下,即使在模板中多次调用 php 文件,也只会包含一次。你可以使用once
属性指定每次都应该包含。将 once 设置为 FALSE
将在模板中每次包含 php 脚本时都包含它。
你可以选择传递assign
属性,该属性将指定一个模板变量名称,{include_php}
的输出将被分配给该名称,而不是显示输出。
smarty 对象可以作为$_smarty_tpl->smarty
在你包含的 PHP 脚本中使用。
示例 7.55. 函数 {include_php}
load_nav.php
文件
<?php // load in variables from a mysql db and assign them to the template require_once('database.class.php'); $db = new Db(); $db->query('select url, name from navigation order by name'); $this->assign('navigation', $db->getRows()); ?>
模板位置
{* absolute path, or relative to $trusted_dir *} {include_php file='/path/to/load_nav.php'} {include_php '/path/to/load_nav.php'} {* short-hand *} {foreach item='nav' from=$navigation} <a href="{$nav.url}">{$nav.name}</a><br /> {/foreach}