以下是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>
{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>
答案 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)
您是否尝试过使用{html_image}?
http://www.smarty.net/docsv2/en/language.function.html.image.tpl