如何使用JS在iframe中运行PHP可编辑?

时间:2015-04-17 01:18:34

标签: javascript php iframe ace-editor

我使用this tool创建了一个HTML / JSS编辑器,当编辑时会在<iframe>(预览)中显示结果。

editor.getSession().addEventListener('change', function () {
    iframe.contentWindow.document.body.innerHTML = editor.getSession().getValue(); // ex: '<div>Hi!</div>'
});

这很简单,问题在于PHP编辑器......很明显,如果我在innerHTML中插入PHP代码,则无法在客户端执行。

如果值为:

<?php 
    $name= 'John Doe'; 
    echo $name; 
?>

这表明:

<!--?php $name= 'John Doe'; echo $name; ?-->

保存此临时代码并立即在iframe(预览)上运行的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你是什么意思

  

立即在iframe上运行(预览)


如果您希望用户编辑的PHP代码在客户端浏览器中运行并完全显示输出,
那么没有务实的方法来做到这一点。

因为,要运行php代码,
你首先需要一个php运行时。

现在,客户端是否在他们的系统(PC)中安装了php,
您无法通过浏览器访问它。

现在,如果您急于运行代码(然后在您的服务器上)并将输出发送到客户端浏览器,
然后
警告 :: 这是非常危险的
从未知(因而不受信任)的来源获取字符串并在服务器上将它们作为php代码运行,您可以在短时间内轻松地破坏(和打击)您的服务器:p
因为,你不知道他们正在编写什么代码(除非你在运行之前明确地调整它:p)

(现在如果你不知道自己在做什么)
你可以使用 eval 结构,如下所述:
http://php.net/manual/en/function.eval.php

eval("?> $str <?php ");