Как обработать HTML код уже сформированной страницы, непосредственно перед выводом ее на экран? Например, хочется мне удалить все HTML комментарии из кода или еще что-нибудь сотварить.
Как обработать HTML код уже сформированной страницы, непосредственно перед выводом ее на экран? Например, хочется мне удалить все HTML комментарии из кода или еще что-нибудь сотварить.
Средствами Yii - не как.
А руками - или регулярки, или str_ireplace
Да, str_ireplace конечно, но я не пойму куда именно запихнуть этот самый str_ireplace?
самый простой способ пришедший в момент прочтения вопроса -
можно же не выкидывать то что юзер запросит а занести в переменную
public string render(string $view, array $data=NULL, boolean $return=false)
обратите внимание на последний аргумент
Да, spk дал хорошую идею. Еще можно перегрузить метод render() для контроллера, если финальная обработка везде одинаковая.
Если речь о всей странице то можно взять за основу технику из кука:
http://www.yiiframework.com/doc/cookbook/39/
Моё представление, что можно весь вывод обработать таким же образом
'onBeginRequest'=>create_function('$event', 'return ob_start();'),
'onEndRequest'=>create_function('$event', 'return str_replace (ob_end_flush()....);'),
Отпишись если получилось тоже интересно)))
Получилось. Добавляем следующие две строчки прямо в главный конфиг, в protected/config/main.php:
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'My site',
'sourceLanguage' => 'ru',
'language' => 'ru',
'onbeginRequest'=>create_function('$event', 'return ob_start();'),
'onendRequest'=>create_function('$event', '$a = ob_get_clean(); echo str_replace("abc", "", $a);'),
...