0

我尝试使用聪明的 file_get_contents 读取外部数据

但是,我收到此错误。

Fatal error: Smarty error: [in /opt/lampp/htdocs/blog/serendipity/templates/templates3/index.tpl line 107]: [plugin] (secure mode) modifier 'file_get_contents' is not allowed (Smarty_Compiler.class.php, line 1934) in /opt/lampp/htdocs/blog/serendipity/bundled-libs/Smarty/libs/Smarty.class.php on line 1093

有没有其他方法来获取数据?或者我怎样才能让 smarty 使用这个功能?

4

3 回答 3

1

也许{fetch}插件可以在这里提供帮助。无论如何,@shadyyx 没有错。您可能只想分配内容并使您的生活更简单。

于 2012-05-21T09:57:16.403 回答
0

您应该做的是配置 smarty 安全设置。

源代码如下:

if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) {
    $_message = "(secure mode) modifier '$_name' is not allowed";
} else {
    if (!function_exists($_name)) {
        $_message = "modifier '$_name' is not implemented";
    } else {
        $_plugin_func = $_name;
        $_found = true;
    }
}
于 2012-05-21T09:55:08.930 回答
0

该错误表明您处于安全模式。这意味着 Smarty 不允许您运行 PHP 脚本(取决于安全模式级别)或调用许多 PHP 函数。

您可以关闭我不推荐的安全模式,或者您应该将 PHP 代码放入您的控制器并在 PHP 控制器中分配 var:

...
$data = file_get_contents('path_to_json');
$smarty->assign('data', $data);
...

或者

$smarty->assign('data', file_get_contents('path_to_json'));
于 2012-05-21T09:55:28.703 回答