Вопрос Symfony: Как получить / прочитать содержимое страницы в формате HTML? - PullRequest
2 голосов
/ 07 апреля 2011

Итак, у меня есть файл actions.class.php, и у меня есть такая функция:

public function executeGetHTML($request)
{
   $pageName = $request->getParameter('name', '');
}

Я не хочу выводить содержимое файла getHTMLSuccess.php

Вместо этого, в зависимости от запроса, мне нужно получить HTML-код другой страницы (без обработки, например, ее фильтрации, и т. Д.). На самом деле содержимое страницы будет выводиться в формате JSONP внутри переменной JSON. например

Например, я звоню / getHTML? Name = abc

и abc.html (или abc.php) имеют содержимое:

<div>Hello, my beautiful world</div>

тогда я получу содержимое страницы Hello, мой прекрасный мир

и выведите его как: mycallback ({content: 'Здравствуйте, мой прекрасный мир'});

Я знаю, что могу сделать file_get_content (...), но очень сложно явно читать файл, в то время как symfony уже должен кешировать и знать.

include / require не будет работать в этом ... так, есть ли более легкий способ сделать это?

Ответы [ 2 ]

2 голосов
/ 18 января 2012

У меня не работало в symfony 1.4.14, пока я не использовал getController ():

$html = $this->getController()->getPresentationFor('module', 'action');

А также для передачи параметров в действие:

$this->getRequest()->setParameter('parameter_name', value);

Другой способпередать параметры:

$html = $this->getController()->getPresentationFor('module', 'action?id=123');
2 голосов
/ 13 апреля 2011

Вы можете попробовать метод getPresentationFor (http://www.symfony -project.org / api / 1_4 / sfController # method_getpresentationfor )

public function executeGetHTML($request) {
  $pageName = $request->getParameter('name', '');

  $html = $this->getPresentationFor('module', 'action');
}

Это вернет вывод для запрошенного модуля/ действие вместо вывода его на экран

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