2016-07-14 4 views
0

私は動的にドロップアウトするソリューションを見つけようとしています。理由:私は、スクリプトをプレーンなPHPコードのコードを実行できるようにしたいと思っています。PHP - PHPを動的にドロップ/ドロップする?

次の文は、正常に動作します:

<? 
    if ($statement == true) { 
     ?>echo "hello";<? 
    } else { 
     echo "hello"; 
    } 
?> 

私は二重の仕事を防ぐのが大好きです。以下は明らかにエラーを出すでしょうが、私は何をする必要があるかを正確に行う他の方法があるのだろうかと思います。

<? if ($statement == true) { ?> } echo "hello"; { <? } ?> 
+1

えっ、私はあなたの質問を得ることはありません、あなたは 'エコー「こんにちは」する必要がある場合;'両方のケースでは、なぜif節がありますか? - そして、あなたの最初のif節は、その中のエコーがphpタグでラップされていないので動作していると信じています。 – Epodax

+0

私は彼がセカンドケースで "hello"をエコーし​​ようとしていると思いますが、 "echo" hello "最初の1つは、出力を生成するコードを表示することです。 eval()が気になります。 – Majiy

+0

'readfile(__ FILE__); die(); ' –

答えて

0

eval()機能を使用できます。それはユーザーの入力が含まれている場合は特に、

<?php 
    $code = 'echo "hello";'; 
    if($statement) 
     echo $code; //print 
    else 
     eval($code); // execute 
?> 

は、セキュリティ上の理由から、あなたが生成されたコードを確認する必要があります。文字列を解析し、任意の含まれるPHPコードを実行することができます。

0

これはひどい答えであり、evalを使用すべきではないと言う人もいるでしょうが、正しく使用されれば(ユーザが入力したコードではない)、安全です。

私は、evalのphpの機能を調べることをお勧めします。文字列にコードを実行させることができます。

したがって、このような何かが働くだろう:

$code = 'echo "hello";'; 
if($statement == true) 
    $code = "?>".$code."<?php"; 
eval($code);