Я создал редактор HTML / JSS, используя этот инструмент, который при редактировании отображает результат в <iframe>
(Предварительный просмотр).
editor.getSession().addEventListener('change', function () {
iframe.contentWindow.document.body.innerHTML = editor.getSession().getValue(); // ex: '<div>Hi!</div>'
});
Это легко, проблема в редакторе PHP … очевидно, если я вставлю код PHP в innerHTML
это не может быть выполнено на стороне клиента.
Если значение:
<?php
$name= 'John Doe';
echo $name;
?>
Это показывает:
<!--?php $name= 'John Doe'; echo $name; ?-->
Каков наилучший способ сохранить этот временный код и мгновенно запустить его в iframe (предварительный просмотр)?
Что вы подразумеваете под
запустить мгновенно на iframe (превью)
Если вы хотите, чтобы отредактированный пользователем php-код запускался и полностью отображал выходные данные в браузере на стороне клиента,
тогда нет никакого прагматичного способа сделать это.
Потому что для запуска PHP-кодов,
Во-первых, вам нужна среда выполнения php.
Теперь, независимо от того, установлен ли клиент в своей системе (ПК) или нет,
у вас нет доступа к этому через браузер.
Теперь, если вы отчаянно хотите запустить код (на своем сервере) и отправить вывод в браузер клиентов,
затем
ПРЕДУПРЕЖДЕНИЕ:: Это очень опасно,
взятие строки из неизвестных (и, следовательно, ненадежных) источников и
запустив их в виде php-кода на сервере, вы можете легко и быстро взломать ваш сервер (packed): p
так как,
вы не знаете, какой код они пишут (если вы явно не модерируете его перед запуском: p)
(Теперь, если вы не знаете, что делаете)
Вы можете использовать Eval построить как описано здесь:
http://php.net/manual/en/function.eval.php
eval("?> $str <?php ");
Других решений пока нет …