ホームページ  >  記事  >  バックエンド開発  >  PHP eval 関数の使用方法 PHP_PHP チュートリアルの eval() 関数に関するヒント

PHP eval 関数の使用方法 PHP_PHP チュートリアルの eval() 関数に関するヒント

WBOY
WBOYオリジナル
2016-07-21 15:14:58986ブラウズ

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
tru​​e
http://www.bkjia.com/PHPjc/326168.html

技術記事 eval は文字列に値を代入します。 構文: void eval(string code_str); 戻り値: なし 関数の種類: データ処理 内容の説明 この関数は、通常...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。