Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在与Smarty一起使用框架时指定内容类型_Php_Http_Http Headers_Smarty_Recess - Fatal编程技术网

Php 如何在与Smarty一起使用框架时指定内容类型

Php 如何在与Smarty一起使用框架时指定内容类型,php,http,http-headers,smarty,recess,Php,Http,Http Headers,Smarty,Recess,我目前正在使用带有Smarty模板引擎的PHP框架。在我的控制器中,我的代码类似于: /** * !View Smarty * !RespondsWith Smarty * !Prefix Views: templates/, Routes: / */ class XHomeController extends Controller { /** !Route GET */ function index() { $this->title =

我目前正在使用带有Smarty模板引擎的PHP框架。在我的控制器中,我的代码类似于:

/**
* !View Smarty
* !RespondsWith Smarty
* !Prefix Views: templates/, Routes: /
*/

class XHomeController extends Controller {

    /** !Route GET */
    function index()
    {
            $this->title = "Some title...";
    }

}
在相应的Smarty视图中,我像往常一样引用
{$title}

除了Android浏览器(在我的2.3 Nexus One、3.2平板电脑以及Android emulator上),该视图在所有浏览器中都能正确呈现。我认为我已经将问题追溯到了这样一个事实,即Smarty视图被呈现并发送到没有内容类型的浏览器

使用,我注意到响应中的内容类型为空

在使用Smarty时,如何指定凹槽中的内容类型?我已尝试将标题('Content-type:text/html')添加到控制器中的方法,但这不起作用


知道我做错了什么吗?

我想看看休会/框架/视图中的SmartyView代码。该类应该有一个canRespondWith()方法,该方法将验证视图是否可以使用某个MIMEType进行响应。例如:

class XmlView extends AbstractView {

    public function canRespondWith(Response $response) {
            return 'xml' === $response->request->accepts->format();
    }
}
如果返回true,则将使用XmlView。在AbstractView类中,sendHeaders()方法将设置内容类型:

protected function sendHeadersFor(Response $response) {
    header('HTTP/1.1 ' . ResponseCodes::getMessageForCode($response->code));

    $format = $response->request->accepts->format();
    header('Content-Type: ' . MimeTypes::preferredMimeTypeFor($format));
    /* ... */
}
查看/http/MimeTypes.class.php以了解“xml”如何响应正确的头。您还需要在SmartyView中查看返回的mimetype,以查看将设置的标头