ホームページ >バックエンド開発 >PHPチュートリアル >phpのeval()関数を無効にする方法例を詳しく解説
PHP では、eval は関数であり、直接無効にすることはできません。しかし、eval 関数は非常に危険であり、多くの場合問題を引き起こします。今日は、配列に対する eval 関数の操作と、eval( を無効にする方法) を見ていきます。 PHP の ) 関数を必要とする友人は、
php eval() 関数の操作配列を参照できます:
<?php $data = "array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4')"; $arr = eval("return $data;"); var_dump($arr); //array ?>
実行結果:
array(4) { ["key1"]=> string(6) "value1" ["key2"]=> string(6) "value2" ["key3"]=> string(6) "value3" ["key4"]=> string(6) "value4" }
インターネット上の多くの人がこう言っています。 disable_functions を使用して eval を無効にするのは間違いです。
実際、php.ini で disable_functions を使用して eval() を無効にすることはできません。
eval() は関数ではなく言語構造であるためです
eval は zend であるため、PHP_FUNCTION 関数ではありません
それでどうなるでしょうか。 php について eval を禁止するとどうなるでしょうか?
evalを無効にしたい場合は、PHP拡張機能Suhosinを使用できます:
Suhosinをインストールした後、php.iniにSuhosin.soをロードし、suhosin.executor.disable_eval = onを追加します
上記は内容全体ですこの記事が皆さんの勉強に役立つことを願っています。
関連する推奨事項:
phpphpでのbind_param()関数の使用法の詳細な説明
php exec() を使用するクエリ実行後に影響を受ける行数を実装する PDO メソッドの関数
以上がphpのeval()関数を無効にする方法例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。