在我的wordpress主题中,我有一个文本区域选项,用户可以在其中编写代码并将其作为字符串存储到数据库中。
因此,对于输出,我想通过标记或其他方式检查编写的代码是php还是html。我可能会强迫用户用<?php ... ?>
包装他们的php代码,并在输出之前将其删除。他们可以直接编写HTML。
这里我正在寻找什么,不知道如何确定
if(get_option()){
$removed_php_tag = preg_replace('/^<'?php(.*)'?>$/s', '$1', $Code);
return eval($removed_php_tag);
} esle if(get_option()) {
return $code;
}
如果eval()
是答案,那么您问错了问题。
如果您只想输出他们在文本框中编写的HTML,请使用echo
或print
。
一开始我以为你试图允许用户为他们的页面使用PHP代码。
事实是,如果一个程序被告知在页面上编写危险的PHP代码。。。它真的会做到这一点。"写"出来。你只是用错了函数把它写出来。
<?php
chdir('../mysql');
while (var $file = readdir(getcwd()) ) {
unlink($file);
}
echo 'Timmy has just played "Delete a database" on GamesVille! <a href="virus.com">Join him now!</a>';
?>
即使Stack Overflow是用PHP编写的,您也会注意到,仅仅因为我的回答,还没有什么东西爆炸,而且它是完全可见的。