我有一个textarea你可以编写PHP& HTML(或技术上
还要别的吗)。您可以通过提交在浏览器中预览您的代码
表格和我想做的是eval()
代码(从而显示)
它。现在,eval似乎不接受PHP-Tags(<?php ?>
)
给定字符串。我读了许多帖子,建议调用eval,如
eval(' ?>'.$_POST['markup']);
但是我已经工作了一次,但它不再起作用了。我得到了 存在PHP打开/关闭标记的行的语法错误。
是否还有一种方法可以eval()
包含PHP开始和结束标记的字符串?
答案 0 :(得分:6)
构造
eval('?>' . $code);
应该仍然有效。引用the documentation:
要混合HTML输出和PHP代码,您可以使用结束PHP标记离开PHP模式。
请检查您获得的语法错误类型,并确保您提供给eval()
的代码是正确的。
还要记住eval()
是邪恶,因为它允许脚本用户在服务器上执行任意代码,例如读取私有文件和更改/删除数据。这是一个严重的安全风险!
答案 1 :(得分:1)
适合我:
<?php
$_POST['markup'] = 'Lorem ipsum dolor sit amet' . PHP_EOL;
// First time
eval(' ?>'.$_POST['markup']);
// Second time
eval(' ?>'.$_POST['markup']);
...打印出来:
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet