我需要将基于Zend的网站的主导航/标题添加到第三方产品的顶部。第三方产品允许我将服务器上的任何文件包含在其布局中。我的想法是我会运行一个cron,它会将Zend布局的标题部分保存到每晚硬编码的html文件中。然后只需阅读第三部分的相应文件。
所以我试过了:
$ htmlcontent = $ this-> view-> render('file.phtml');
然后将$ htmlcontent保存到文件中。它正确地保存了file.phtml中的所有内容,但排除了布局/标题,这是我真正需要的部分。我如何将生成的所有内容(包括布局)保存到文件中。
感谢 夏季
答案 0 :(得分:0)
视图脚本只是整个布局的一部分。在正常的Zend Framework设置中,您将拥有一个布局,其中包含您的视图脚本(例如,file.phtml)。布局文件如下所示:
<html>
<body>
<div>My header here</div>
<?php echo $this->layout()->content; ?>
<div>I have a footer here.</div>
</body>
</html>
$ this-&gt; layout() - &gt;内容将根据您所在的页面(例如,调用fileAction()时的file.phtml)保存您的视图脚本。
因此,要访问页面的完整HTML,您有两种选择:
使用旧的file_get_contents并将完整呈现的HTML转换为带有http请求的字符串。
$htmlcontent = file_get_contents('http://yourdomain/index/file');
获取Zend Framework的布局实例,为其分配内容,并将其呈现为字符串,如下所示:
$layout = $this->_helper->layout->getLayoutInstance();
$layout->content = $this->view->render('file.phtml');
$htmlcontent = $layout->render();