【问题标题】:How to run PHP editable in an iframe with JS?如何在带有 JS 的 iframe 中运行 PHP 可编辑?
【发布时间】:2015-04-17 01:18:33
【问题描述】:

我使用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(预览版)上运行的最佳方法是什么?

【问题讨论】:

    标签: javascript php iframe ace-editor


    【解决方案1】:

    什么意思

    在 iframe 上立即运行(预览版)


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

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

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

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

    (现在如果你不知道自己在做什么)
    您可以使用此处描述的 eval 构造:
    http://php.net/manual/en/function.eval.php

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2017-07-30
      相关资源
      最近更新 更多