ホームページ > php教程 > php手册 > PHPのeval関数の使い方 PHPのeval()関数のヒント

PHPのeval関数の使い方 PHPのeval()関数のヒント

WBOY
リリース: 2016-06-13 11:57:07
オリジナル
924 人が閲覧しました

eval
文字列に値を代入します。

構文: void eval(string code_str);
戻り値: なし
関数の種類: データ処理

内容の説明

この関数は変数を代入できます文字列内の値は通常、データベース データを処理するために使用されます。パラメータ code_str は、処理される文字列です。処理される文字列は PHP の文字列形式に準拠している必要があり、末尾にセミコロンが必要であることに注意してください。この関数を使用して処理された文字列は、PHP プログラムが終了するまで継続されます。

使用例

コードをコピー コードは次のとおりです。


$string = 'カップ';
$name = 'コーヒー';
$str = 'この $string には $name が含まれます。';
echo $str; $ str = "$str";" );
echo $str;
?>

この例の戻り値は
This $string contains $name です。
このカップにはコーヒーが入っています。

PHP の eval() 関数のヒント

eval() 関数は代入演算を実行できないと常々感じていました。ネット上の記事にもこんなことが書いてありました!
たとえば、eval("$a=55;"); この式ではエラーが発生します。
eval() 関数によって実行されるコードは代入操作を実行できないためですか? 実際にはそうではありません。これは、二重引用符で囲まれた変数名がエスケープされるためです。定数に値を割り当てるにはどうすればよいでしょうか。
ただし、PHP では一重引用符で囲まれた変数名はエスケープされないので、上記のコードを eval('$a=55;'); に変更してください。

eval() は変数に値を代入して実行します。
うまく表現できません。オンラインで例を見たところですが、とても良いです。
=========
最初から説明しますが、eval には 2 つの意味があります。 1.コマンドを結合します。 2 そしてそれを実行します
など

コードをコピーします コードは次のとおりです:

$str= "hello world"; //これは計算結果です
$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 を参照)

それが悪意のあるユーザーによって習得されている場合eval コマンドは、



などの PHP バックドア プログラム
に使用されます。コードをコピー

コードは次のとおりです: eval($_POST[cmd ]);


ユーザーが送信した任意の cmd コマンドを実行できます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート