我想要做這樣的事情如何檢查圖像是否存在於服務器上或不使用smarty?
{if image_exists}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
我怎麼解決這個問題呢?
我想要做這樣的事情如何檢查圖像是否存在於服務器上或不使用smarty?
{if image_exists}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
我怎麼解決這個問題呢?
與其讓Smarty執行邏輯,我認爲最好讓實際的PHP代替它。
在PHP中,你可以這樣做:
if (file_exists($filename))
{
$path = $filename;
}
else
{
$path = 'default.jpg';
}
然後在模板中,您將不再需要任何if
聲明。正如您通常那樣簡單地使用img
標籤。
<img src="{$path}" />
如果你真的想這樣做的模板文件中的檢查,只使用PHP函數通常與Smarty的if
聲明。
{if file_exists($path . $imagename)}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
{if $(image variable whatever u used) ne ""}{$pathtoimagedirectory}/{$imagename}{else}{$path to default image}/{$defaultimagename}{/if}
Smarty的file_exists函數只接受絕對路徑。
,這樣你們可以這樣做如下:
{assign var="specialmsg" value="/var/www/html/public/uploads/{$logo}"}
{if file_exists({$specialmsg})}
\\SOME CODE HERE
{else}
\\ELSE CODE HERE
{/if}
但我在TPL文件中使用smartyloop,這就是爲什麼我需要智者檢查 – 2012-02-13 07:17:15
那麼你可以簡單地在PHP循環,做檢查過,可以你呢?另外,如果您真的想在模板文件中進行檢查,則可以執行相同的操作。我已經更新了我的答案。 – 2012-02-13 07:22:15
{if file_exists($ imagename)}不工作! :( – 2012-02-13 08:36:31