{include_php}

重要提示

{include_php}是废弃的函数,用注册插件的方式来将程序代码和显示分离,是更好的选择。在Smarty 3.1,{include_php}仅在SmartyBC中可用.

参数名称 类型 必选参数 默认值 说明
file string Yes n/a 载入PHP文件的绝对路径
once boolean No TRUE 是否仅载入一次该PHP文件,即使多次执行。
assign string No n/a 将包含文件的输出赋值给变量

可选标记:

名称 说明
nocache 关闭包含PHP文件的缓存

{includephp}用于载入一个PHP文件到模板中。 属性中的file路径可以是绝对路径,或是相对于 [$trusteddir]($126.md)的路径。 如果安全机制开启,那么只有在$trusted_dir目录中的文件才可以被载入。 参见安全机制

默认情况下,该PHP文件仅会载入一次,即使多次执行模板。 你可以设置once属性使其每次执行都载入。 当once设置为FALSE,PHP文件将在每次模板执行的时候都会被载入。

你可以设置可选的属性assign,来将{include_php}载入的内容 赋值给一个指定的模板变量,而不是输出。

在载入的PHP文件中,可以通过$_smarty_tpl->smarty来获取到当前的Smarty对象。


Example 7.55. {include_php} 函数

load_nav.php 文件:

  1. <?php
  2.  
  3. // load in variables from a mysql db and assign them to the template
  4. require_once('database.class.php');
  5. $db = new Db();
  6. $db->query('select url, name from navigation order by name');
  7. $this->assign('navigation', $db->getRows());
  8.  
  9. ?>
  10.  

模板:

  1. {* absolute path, or relative to $trusted_dir *}
  2. {include_php file='/path/to/load_nav.php'}
  3. {include_php '/path/to/load_nav.php'} {* short-hand *}
  4.  
  5. {foreach item='nav' from=$navigation}
  6. <a href="{$nav.url}">{$nav.name}</a><br />
  7. {/foreach}
  8.  

参见{include},$trusted_dir, {php}, {capture}, 资源组件化模板

原文: https://www.smarty.net/docs/zh_CN/language.function.include.php.tpl