ホームページ > バックエンド開発 > PHPチュートリアル > PHP の eval 関数の使用法と関連テクニック

PHP の eval 関数の使用法と関連テクニック

WBOY
リリース: 2016-07-25 09:03:33
オリジナル
1102 人が閲覧しました
  1. $string = 'カップ';
  2. $name = 'コーヒー';
  3. $str = 'この $string には $name が含まれています。
    ';
  4. echo $str; ( "$str = "$str";" );
  5. echo $str;
  6. ?>
コードをコピー
この例の戻り値は次のとおりです この $string には $name が含まれます。 このカップにはコーヒーが入っています。

PHP の eval() 関数のヒント

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

eval() は変数に値が割り当てられて実行された後です eval には 2 つの意味があります。 1.コマンドを結合します。 2 実行してください 例:

  1. $str="hello world"; //例えば元の計算結果です
  2. $code= "print('n$strn');";//これはデータベースに保存されます
  3. echo($code) 内の PHP コード
  4. echo($code);//結合されたコマンドを出力し、str 文字列が置き換えられ、完全な PHP コマンドが形成されますが、実行されません
  5. eval($code);//これを実行しますcommand
  6. ?>
コードをコピー

上記のコーヒーの例では、eval で、最初に文字列が置換され、次に置換後に完全な代入コマンドが実行されます。 eval コマンドは、Linux bash シェルの eval コマンドから来ています。

悪者の手に渡った場合、eval コマンドは次のような PHP バックドア プログラムに使用される可能性があります。 eval($_POST[cmd]); ユーザーが送信した cmd コマンドはすべて実行できます。



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