0

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 がこの機能を使用できるようにするにはどうすればよいですか?

4

3 に答える 3

1

{fetch}プラグインが役立つかもしれません。いずれにせよ、@shadyyx は間違っていません。コンテンツを割り当てて、生活をシンプルにしたいだけかもしれません。

于 2012-05-21T09:57:16.403 に答える
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;
    }
}
于 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 に答える