如何在smarty模板中识别数组数据中的<img/>标记?

时间:2013-01-28 11:55:39

标签: php foreach smarty associative-array

以下是smarty模板的代码段。 实际上有一个关联数组,我们在smarty模板中显示它的值。 关联数组的一个这样的元素是$ans.answer_text,我要检查内容(值)中是否存在任何<img>标记,如果<img>标记存在,我是做一些逻辑,如果不是,我要做其他逻辑。 但我面临的主要问题是如何检查数组元素数据中是否存在<img>标记? 请帮我解决这个问题。 提前致谢。

<tr valign="top">
    {foreach from=$qstn_ans.answer item=ans key=ans_no}
         <td valign="top" valign="top">
         {if $ans.answer_is_right==1}{assign var='correct_ans' value=$ans_no+1}{/if}
         <b>{$ans_no+1}.</b>&nbsp;&nbsp;
         {if $ans.answer_text!=''}{$ans.answer_text}{/if}
         <br />
         {if $ans.answer_file!=''}<img src="{$ans_thumb_img_path}{$ans.answer_id}_{$ans.answer_file}" />{/if}
         </td>
    {/foreach}
</tr>

2 个答案:

答案 0 :(得分:1)

这种用法违背了使用太阳镜发动机的目的。理想情况下,您应该在控制器中进行这些检查。

我会按以下方式进行:

$qstn_ans = array();
// PHP Controller
foreach ($qstn_ans as $key => $value) {
    $imgPath = ''; // generate the name here
    $qstn_ans[$key]['hasImage'] = (file_exists($imgPath))?1:0;
}

// Template file
{if $ans.hasImage}<img src="<!-- insert image here -->" />{/if}

答案 1 :(得分:0)