我有一个PHP文件,它会回显一个变量:
<?=echo $myVariable;?>
$myVariable
是我从MySQL变量中提取的数据,其中可能包含类似php echo
本身的代码:
<div dir="rtl">
Hello $data['assigned_vars']['first_name'];<br />
your email <?=$data['assigned_vars']['email'];?><br />
your password <?=$data['assigned_vars']['user_password'];?>
</div>
我使用ob buffering
来存储整个字符串,然后使用return
。如何在PHP字符串中执行PHP代码?
您可以使用eval
函数,但它会给您带来很大的安全问题。
echo eval($string);
但这里可能会发生安全异常,例如下面的代码。
$string = "base64_decode(bXlzcV9xdWVyeSgnREVMRVRFICogRlJPTSBVU0VSJyk7)";
//mysql_query('DELETE * FROM USER');
echo eval($string);
它清空了你的USER
表。
我想我找到了我的解决方案。我只需要file_put_contents来创建临时html文件,然后简单地包括它,然后删除文件