Возможно ли это с Zend Framework и CKEditor - PullRequest
1 голос
/ 20 февраля 2012

Надеюсь, что кто-то может мне помочь, я храню php в таблице, которая хранится в виде текстового поля в моей базе данных как:

<?php
    echo "this is a test";
?>

И я вытаскиваю это содержимое из базы данных для визуализации, используяКоманда ниже в функции preDispatch контроллера: -

<?php
    class Ajfit_Controller_View_Action extends Zend_Controller_Action {

         public function preDispatch()
         {
            parent::preDispatch();

            $this->getResponse()->setBody($page->getContent());
         }
    }
?>

Моя проблема в том, что, когда я рендерил контент из базы данных, страница просто отображает текст php и не выполняет его, это то, что яя делаю даже возможно?

Спасибо

Андрей

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Для этого вам нужно будет использовать eval ($ phpcode). Это риск для безопасности, если вы примете это из ненадежных источников.

Вы также должны будете добавить:

$this->_helper->viewRenderer->setNoRender();

, чтобы ZF не пытался визуализировать представление.

если вы решите использовать eval (), вы можете сделать это:

ob_start();
eval(preg_replace("/^<\?(php)?(.*)\?>$/", '$2', $page->getContent()));
$body = ob_get_clean();
$this->getResponse()->setBody($body);

Вы не можете поместить содержимое eval'd в теги PHP открытия / закрытия, следовательно, preg_replace.

1 голос
/ 20 февраля 2012

Вам нужно будет запустить его через PHP * функцию 1001 *, но это огромных потенциальных проблем безопасности.

0 голосов
/ 21 февраля 2012

Пожалуйста, не создавайте свое приложение таким образом.Если вам нужно, чтобы ваш код использовался в нескольких местах, посмотрите на что-то вроде rsync:

http://en.wikipedia.org/wiki/Rsync

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...