最近因项目需要,引出一个议题:如何执行字符串的php代码(php和html混写)。
注:传统情况下,php代码存储在文件中,直接运行文件即可。以下讨论的情况是,如果php代码是从数据库中获取到,那么要如何运行?

最直观的方案

  • 将字符串代码写到临时文件,然后在项目中include该文件,执行完成再删除这个临时文件

  • system exec 之类的系统函数

  • php函数eval (会不会有安全问题?)

进一步的瞎想

  • 把字符串代码当做参数,传入到php的cli或者php-fpm中运行

  • 重新定义include,让include可以直接操作字符串

几种思路的验证