这都是我踩过的误区!麻烦您不用再踩了! ==================================================== ### [已测试] - http://www.php100.com/cover/php/618.html - 无法用function_exists判断language construct的语句 - (它们不是函数,是语句) * langConstructs - die, exit, - echo, print, - empty, isset, unset, - eval, list, - include, include_once, - require, require_once, ==================================================== ### [我就不测试了,上面已经证实...] - http://www.th7.cn/Program/php/201605/855533.shtml - 无法用php.ini中的disable_functions禁止eval() * 禁止掉eval的错误方法 - 然而网上很多说使用disable_functions禁止掉eval的方法都是错误的! - 其实eval()是无法用php.ini中的disable_functions禁止掉的 : - because eval() is a language construct and not a function * eval是zend的,因此不是PHP_FUNCTION 函数; - 那么php怎么禁止eval呢? - 如果想禁掉eval可以用php的扩展 Suhosin: - 安装Suhosin后在php.ini中load进来Suhosin.so,再加上suhosin.executor.disable_eval = on即可! - 总结,php的eval函数在php中是无法禁用的,因此我们也只有使用插件了! ==================================================== ### php7.x 不能使用eval? * php7 / eval - `php7 不再支持eval`?能用! - 能用!只是很多场景不建议使用!!![2017-05-17]