本文整理汇总了PHP中Cake\Network\Response::charset方法的典型用法代码示例。如果您正苦于以下问题:PHP Response::charset方法的具体用法?PHP Response::charset怎么用?PHP Response::charset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cake\Network\Response
的用法示例。
在下文中一共展示了Response::charset方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: respondAs
/**
* Sets the response header based on type map index name. This wraps several methods
* available on Cake\Network\Response. It also allows you to use Content-Type aliases.
*
* @param string|array $type Friendly type name, i.e. 'html' or 'xml', or a full content-type,
* like 'application/x-shockwave'.
* @param array $options If $type is a friendly type name that is associated with
* more than one type of content, $index is used to select which content-type to use.
* @return bool Returns false if the friendly type name given in $type does
* not exist in the type map, or if the Content-type header has
* already been set by this method.
* @see RequestHandlerComponent::setContent()
*/
public function respondAs($type, array $options = array())
{
$defaults = array('index' => null, 'charset' => null, 'attachment' => false);
$options += $defaults;
$cType = $type;
if (strpos($type, '/') === false) {
$cType = $this->response->getMimeType($type);
}
if (is_array($cType)) {
if (isset($cType[$options['index']])) {
$cType = $cType[$options['index']];
}
if ($this->prefers($cType)) {
$cType = $this->prefers($cType);
} else {
$cType = $cType[0];
}
}
if (!$type) {
return false;
}
if (empty($this->request->params['requested'])) {
$this->response->type($cType);
}
if (!empty($options['charset'])) {
$this->response->charset($options['charset']);
}
if (!empty($options['attachment'])) {
$this->response->download($options['attachment']);
}
return true;
}
示例2: beforeRender
/**
* Checks if the response can be considered different according to the request
* headers, and the caching response headers. If it was not modified, then the
* render process is skipped. And the client will get a blank response with a
* "304 Not Modified" header.
*
* - If Router::extensions() is enabled, the layout and template type are
* switched based on the parsed extension or `Accept` header. For example,
* if `controller/action.xml` is requested, the view path becomes
* `app/View/Controller/xml/action.ctp`. Also if `controller/action` is
* requested with `Accept: application/xml` in the headers the view
* path will become `app/View/Controller/xml/action.ctp`. Layout and template
* types will only switch to mime-types recognized by Cake\Network\Response.
* If you need to declare additional mime-types, you can do so using
* Cake\Network\Response::type() in your controller's beforeFilter() method.
* - If a helper with the same name as the extension exists, it is added to
* the controller.
* - If the extension is of a type that RequestHandler understands, it will
* set that Content-type in the response header.
*
* @param \Cake\Event\Event $event The Controller.beforeRender event.
* @return bool false if the render process should be aborted
*/
public function beforeRender(Event $event)
{
$isRecognized = !in_array($this->ext, ['html', 'htm']) && $this->response->getMimeType($this->ext);
if (!empty($this->ext) && $isRecognized) {
$this->renderAs($event->subject(), $this->ext);
} else {
$this->response->charset(Configure::read('App.encoding'));
}
if ($this->_config['checkHttpCache'] && $this->response->checkNotModified($this->request)) {
return false;
}
}
示例3: testCharset
/**
* Tests the charset method
*
* @return void
*/
public function testCharset()
{
$response = new Response();
$this->assertEquals('UTF-8', $response->charset());
$response->charset('iso-8859-1');
$this->assertEquals('iso-8859-1', $response->charset());
$this->assertEquals('UTF-16', $response->charset('UTF-16'));
}
示例4: setContentType
/**
* Add in the Content-Type header if necessary.
*
* @param array $headers The headers to update
* @param \Cake\Network\Response $response The CakePHP response to convert
* @return array The updated headers.
*/
protected static function setContentType($headers, $response)
{
if (isset($headers['Content-Type'])) {
return $headers;
}
if (in_array($response->statusCode(), [204, 304])) {
return $headers;
}
$whitelist = ['application/javascript', 'application/json', 'application/xml', 'application/rss+xml'];
$type = $response->type();
$charset = $response->charset();
$hasCharset = false;
if ($charset && (strpos($type, 'text/') === 0 || in_array($type, $whitelist))) {
$hasCharset = true;
}
$value = $type;
if ($hasCharset) {
$value = "{$type}; charset={$charset}";
}
$headers['Content-Type'] = $value;
return $headers;
}