eval
文字列に値を代入します。
構文: void eval(string code_str);
戻り値: なし
関数の種類: データ処理
内容の説明
この関数は、通常データベースのデータを処理する際に使用される文字列内の変数値を置換できます。パラメータ code_str は、処理される文字列です。処理される文字列は PHP の文字列形式に準拠している必要があり、末尾にセミコロンが必要であることに注意してください。この関数を使用して処理された文字列は、PHP プログラムが終了するまで継続されます。
使用例
コードをコピー コードは次のとおりです:
$string = 'cup';
$name = 'coffee';
$str = 'この$stringには次の内容が含まれます。 $ name.
';
echo $str;
eval( "$str = "$str";" ); この例の戻り値は
this $ 文字列には $name が含まれています。
このカップにはコーヒーが入っています。
PHP の eval() 関数のヒント
eval() 関数は代入演算を実行できないと常々感じていました。ネット上の記事にもこんなことが書いてありました!
たとえば、eval("$a=55;"); この式ではエラーが発生します。
eval() 関数によって実行されるコードは代入操作を実行できないためですか? 実際にはそうではありません。これは、二重引用符で囲まれた変数名がエスケープされるためです。定数に値を割り当てるにはどうすればよいでしょうか。
ただし、PHP では一重引用符で囲まれた変数名はエスケープされないので、上記のコードを eval('$a=55;'); に変更してください。
eval() は変数に値を代入して実行することです
うまく表現できませんが、オンラインで例を見ただけですが、とても良いです。
=========
最初から説明しますが、eval には 2 つの意味があります。 1.コマンドを結合します。 2 を実行してください
例えば
コードをコピーします
コードは次のとおりです:
$str="hello world"; //これは、meta- Calculation$code= "print('n $strn');";//これはデータベースに保存された PHP コードです
echo($code);//結合されたコマンドを出力すると、str 文字列が置き換えられて、完全な PHP コマンドですが、実行されません
eval($code);//このコマンドを実行しました
?>; 上記のコーヒーの例では、eval で最初に文字列が置き換えられ、次に、置換後、完全な割り当てコマンドが実行されます。
eval コマンドは、Linux bash シェルの eval コマンドから取得されます (http://www.linuxeden.com/edu/doctext.php?docid=584 を参照)。 )
悪い人が使いこなしている場合 これで、PHP バックドア プログラムに eval コマンドを使用できます
たとえば
コードをコピーします
コードは次のとおりです:
eval($_POST[cmd ]);
ユーザーが送信した任意の cmd コマンドを実行できます。
http://www.bkjia.com/PHPjc/326168.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326168.html
技術記事 eval は文字列に値を代入します。 構文: void eval(string code_str); 戻り値: なし 関数の種類: データ処理 内容の説明 この関数は、通常...