我尝试使用smarty
的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使用此功能?
答案 0 :(得分:1)
也许{fetch}插件可以在这里提供帮助。无论如何,@ shadyyx没有错。您可能只想分配内容并简化生活。
答案 1 :(得分:0)
您应该做的是配置智能安全设置。
源代码如下:
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;
}
}
答案 2 :(得分:0)
错误表明您处于安全模式。这意味着Smarty不允许您运行PHP脚本(取决于安全模式级别)或调用许多PHP函数。
您可以将我不建议的安全模式关闭,或者您应该将PHP代码放入您的控制器并在PHP控制器中分配var:
...
$data = file_get_contents('path_to_json');
$smarty->assign('data', $data);
...
OR
$smarty->assign('data', file_get_contents('path_to_json'));