【问题标题】:passing array parameters to smarty PHP template include将数组参数传递给 smarty PHP 模板包括
【发布时间】:2010-08-03 01:20:13
【问题描述】:

在一个使用 smarty 模板引擎(或至少是 smarty 的近亲)的 PHP 站点上,我调用了一个包含此代码摘录的模板包含文件(“header.html”),以及此处省略的其他 HTML清晰度:

<title>{$title|escape:"html"}</title>
{if isset($META) && $META}
    {foreach from=$META item=m}
        <meta name="{$m[0]}" content="{$m[1]}">
    {/foreach}
{/if}

我目前在父页面模板中有这一行:

{include file="header.html" title="My WebSite Title Goes here"}

如果我想更改这一行以在我的 HTML 中添加两个 META 标记,那么定义 header.html 模板正在寻找的数组的正确语法是什么?

警告:我不熟悉 PHP,所以如果这是一个明显的新手问题,我深表歉意。另外,通过对源代码和下面的 cmets 的一些挖掘,我相信该网站正在使用 smarty 作为模板引擎,尽管我不能确定它不是分叉版本。

【问题讨论】:

  • 无意冒犯,但这是一个愚蠢的模板系统。与它的名字所暗示的完全不同。
  • 一开始看起来像Smarty,但是语法有点不对……
  • 没有采取——这不是我的模板系统。 :-)
  • Charles - 从代码中四处查看,看起来该站点确实使用 smarty,或者至少是 smarty 的变体。上面的语法有什么不妥之处?

标签: php arrays smarty associative-array server-side-includes


【解决方案1】:

尝试类似: 在 PHP 中:

$smarty->assign("myArray",array("some_key" => "some_value","key2" => "value2"));

在 SMARTY 中:

{include file="header.html" title="your title" myParam=$myArray}

【讨论】:

  • 希望有一个仅模板的解决方案,但我想我总是可以在上面的代码周围使用 {php} 块。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
相关资源
最近更新 更多