PHP の eval() 関数のヒント eval() 関数は代入演算を実行できないと常々感じていましたが?ネット上の記事にもこんなことが書いてありました! たとえば、数式 eval("$a=55;"); はエラーを引き起こします。 eval() 関数によって実行されるコードは代入操作を実行できないということですか? 実際にはそうではありません。これは、二重引用符で囲まれた変数名がエスケープされるためです。定数に値を割り当てるにはどうすればよいでしょうか。 ただし、PHP では一重引用符で囲まれた変数名はエスケープされないので、上記のコードを eval('$a=55;'); に変更してください。eval() は変数に値が割り当てられて実行された後です eval には 2 つの意味があります。 1.コマンドを結合します。 2 実行してください 例:
上記のコーヒーの例では、eval で、最初に文字列が置換され、次に置換後に完全な代入コマンドが実行されます。 eval コマンドは、Linux bash シェルの eval コマンドから来ています。 悪者の手に渡った場合、eval コマンドは次のような PHP バックドア プログラムに使用される可能性があります。 eval($_POST[cmd]); ユーザーが送信した cmd コマンドはすべて実行できます。 |