我一直试图测试这个。我在数据库中输入了以下代码。
<?php
$test = "Whats up";
print $test;
?>
然后在页面上我做选择,然后我尝试回声但它不会这样做,除非我摆脱开始和结束标记的条目。所以,如果我想通过从数据库中调用它来执行这个PHP,我该怎么做?谢谢。
答案 0 :(得分:1)
使用eval将字符串视为可运行的PHP代码,例如:
<?php
$string = 'echo "hello";';
eval($string);
?>
正如Pekka所说,这是不好的做法,你应该重新考虑你的解决方案。几乎没有动力在数据库中存储代码(数据库用于数据)。
答案 1 :(得分:1)
你可以使用serialize - unserialize函数来保存对象或变量。并且您可以使用eval函数来运行代码
答案 2 :(得分:0)
嗨这正是我想要的。我们在多个服务器上部署了CMS,为了维护基本功能(无需基于url创建我们的主函数文件),从group = wide单个数据库中存储和调用这些函数更容易。我们使用中等blob并在那里存储序列化的base_64编码文本文件。
因此,要序列化代码,我们使用此脚本而不使用php标记:
<form name="serialise_script" action="" method="post" >
<p>Put Script in here (without php tags???)</p>
<textarea cols="100" rows="25" name="serializeme" ></textarea>
<input type="submit" name="go" value="go" />
</form>
<?php if(isset($_POST['serializeme'])){
echo "<p>Your Code</p><textarea style='border:3px solid black;padding:0.5em;' cols='100' rows='25' >" . base64_encode(serialize($_POST['serializeme'])) . "</textarea>";
} ?>
然后复制脚本并将输出代码粘贴到文本文件中。 将其上传到中等blob表
然后再次从数据库输出并设置为会话变量......我刚刚这样做了:
eval(unserialize(base64_decode($_SESSION['functions'])));
但这是我需要的评估位才能让它发挥作用。通过序列化和编码意味着我们不应该有任何问题。
现在,我需要做的就是为某些服务器上的许多站点管理1个基本代码。 AKA一个错误修复可以解决所有部署中的所有问题。
由于
岸堤