在我目前正在从事的一个项目中,我们正在考虑放置system() http://php.net/system进入 php.ini 的disable_functions http://php.net/disable_functions宣言。现在,我们的一个元模块最终也会成为这一限制的受害者,它是对文件进行语法检查system("php -l");
电话——促使我寻找替代方案。
原来曾经有一个php_check_syntax() http://php.net/php_check_syntax,但它不仅不限于仅检查语法,并且如果语法有效则继续包含该文件,而且从 PHP 5.0.5 开始它已被删除。手册建议php -l
但鉴于我确信在 PHP 中禁用系统调用函数是一种相当常见的做法,我想知道是否有一种可接受的、“更好”的方法从 PHP 文件中检查 PHP 文件的语法。
(顺便说一句,我并不是一意孤行;一个“不”就足够了(我真的希望如此)。我们can使模块免受此限制 - 但我问这个问题既是出于好奇,也是希望有一个更优雅的解决方案。)
我找到了使用 PECL 的替代方案runkit_lint_file() http://de.php.net/manual/en/function.runkit-lint-file.php.
它执行与 php_check_syntax() 相同的检查。
我认为值得一看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)