smarty include_php异常

时间:2018-07-01 18:55:01

标签: php smarty

我想在模板中包含一个php文件。但有时php文件不存在。 我尝试通过功能“ file_exists”检查它,但是它不起作用。

{if file_exists("`$plugin`/button.php")}
    {include_php "`$plugin`/button.php"}
{/if}
  

致命错误:未捕获-> Smarty编译器:模板中的语法错误   第456行上的“文件:/home/user/www/site/template/template.tpl”   “ {include_php” $plugin / button.php“}” {include_php}文件   '/button.php'不可读<-抛出   /home/user/www/site/smarty/sysplugins/smarty_internal_templatecompilerbase.php   在第456行

有什么方法可以检查php文件是否存在?

1 个答案:

答案 0 :(得分:0)

在尝试使用变量之前,请始终对其进行检查。

在这种情况下,$ plugin变量为空会使字符串连接失败。

如果首先确保设置了变量,则如果为true,则检查文件是否存在,该文件应能按预期工作。

{if isset($plugin) && file_exists("`$plugin`/button.php")}
    {include_php "$plugin/button.php"}
{/if}

在纯PHP中,这应该可行,因为如果isset失败,它甚至不会尝试file_exist。
不过不确定。
如果这种方式无法正常工作,则需要将其单独设置为if。