0

次の文字列 (データベースから取得) は変数として格納されます。

str = "if($me == 1) 
{
 return array(9=>true,10=>true,11=>true)
} 
else 
 {
  return  array(9=>false,10=>false,11=>false)
 }"

スクリプトは動的なので...変数を渡してこれから出力を見つける必要があります。誰でもこれを行う方法を手伝ってもらえますか。

4

2 に答える 2

5

eval()はあなたが望むことをします。

eval($string);

データベースにphpを保存することはお勧めしませんが、結果に基づいて異なるコードを動的に実行する問題を処理する方法として、通常ははるかに予測可能で、読みやすく、理解しやすく、保守しやすい方法があります。

于 2013-08-01T10:04:46.260 に答える
0

次のようなことができます。

<?php eval('?>' . $str . '<?php'); ?>

ただし、eval はコードを実行する優れた方法ではありません。データベースに php コードを保存することはお勧めしません。デバッグが非常に難しくなり、悪意のあるコードが含まれている可能性があるため、安全ではない可能性があるからです。

また、多くの人が「Eval is Evil」と言う理由もチェックしてください。

https://blogs.msdn.com/b/ericlippert/archive/2003/11/01/53329.aspx?Redirected=true https://javascriptweblog.wordpress.com/2010/04/19/how-evil-is -評価/

于 2013-08-01T10:05:18.277 に答える